57 lines
1.9 KiB
JavaScript
57 lines
1.9 KiB
JavaScript
// @vitest-environment jsdom
|
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
|
vi.mock("@/components/session/token/SessionUser.vue", () => ({
|
|
SessionUser: {},
|
|
}));
|
|
|
|
vi.mock("@/services/economicTransferQueue.js", () => ({
|
|
DEFAULT_ECONOMIC_QUEUE_POLL_INTERVAL_MS: 10,
|
|
ECONOMIC_QUEUE_STATUS: {
|
|
QUEUED: "QUEUED",
|
|
PROCESSING: "PROCESSING",
|
|
COMPLETED: "COMPLETED",
|
|
FAILED: "FAILED",
|
|
},
|
|
buildCollectedInvoiceEconomicPayload: vi.fn(),
|
|
enqueueEconomicTransferJob: vi.fn(),
|
|
fetchEconomicTransferJobStatus: vi.fn(),
|
|
getEconomicApiErrorMessage: vi.fn((error, fallback) => fallback),
|
|
isEconomicQueueStatusTerminal: vi.fn(),
|
|
retryEconomicTransferJob: vi.fn(),
|
|
}));
|
|
|
|
import {
|
|
addInvoiceCollectionsToQueue,
|
|
clearQueue,
|
|
finishPeriodRefresh,
|
|
isPeriodCustomerRefreshLoading,
|
|
isPeriodInvoiceCollectionRefreshLoading,
|
|
periodCustomerRefreshInProgress,
|
|
periodInvoiceCollectionRefreshInProgress,
|
|
} from "@/views/dashboards/superUserDashboard/InvoicingBillingPeriod/imports/InvoicingBillingPeriodImportInvoiceQueue.vue";
|
|
|
|
describe("Invoicing period queue module state", () => {
|
|
beforeEach(() => {
|
|
clearQueue();
|
|
});
|
|
|
|
it("keeps a customer loading until all tracked collection refreshes finish", () => {
|
|
addInvoiceCollectionsToQueue([7001, 7002], { customerNumber: 1001 });
|
|
|
|
expect(periodCustomerRefreshInProgress.value).toEqual([1001]);
|
|
expect(periodInvoiceCollectionRefreshInProgress.value).toEqual([7001, 7002]);
|
|
|
|
finishPeriodRefresh([1001], [7001]);
|
|
|
|
expect(isPeriodCustomerRefreshLoading(1001)).toBe(true);
|
|
expect(isPeriodInvoiceCollectionRefreshLoading(7001)).toBe(false);
|
|
expect(isPeriodInvoiceCollectionRefreshLoading(7002)).toBe(true);
|
|
|
|
finishPeriodRefresh([1001], [7002]);
|
|
|
|
expect(isPeriodCustomerRefreshLoading(1001)).toBe(false);
|
|
expect(isPeriodInvoiceCollectionRefreshLoading(7002)).toBe(false);
|
|
});
|
|
});
|