import { afterEach, describe, expect, it, vi } from "vitest"; import { avetaPendingDrilldownSearch, scheduledTomorrowDrilldownSearch, workOrderDrilldownUrl, workOrderRangeDrilldownSearch, workOrderStatusDrilldownSearch, } from "@/domain/dashboard/utils/work-order-drilldown-links"; describe("work-order drilldown links", () => { afterEach(() => { vi.useRealTimers(); }); it("schedules the tomorrow drilldown on the business clock", () => { const search = scheduledTomorrowDrilldownSearch("2026-09-16"); expect(search.get("dateFrom")).toBe("2026-09-17"); expect(search.get("dateTo")).toBe("2026-09-17"); }); it("builds the Aveta Pending drilldown per SH-294", () => { const search = avetaPendingDrilldownSearch("2026-09-16"); const statuses = (search.get("statuses") ?? "").split(","); expect(search.get("dateFrom")).toBe("2026-09-16"); expect(search.get("dateTo")).toBe("2026-09-17"); expect(search.get("aveta")).toBe("1"); // `docs=No` is the completion-document status, not the Aveta document, so it // must not be part of the Aveta Pending drilldown (SH-294 / backend#138). expect(search.get("docs")).toBeNull(); expect(statuses).toContain("Scheduled"); expect(statuses).not.toContain("Completed"); }); it("carries the range into status drilldowns", () => { // "today" resolves against the business clock, so pin it (midday EDT on // 2026-09-16 → 2026-09-16 in America/New_York) to keep the test deterministic. vi.useFakeTimers(); vi.setSystemTime(new Date("2026-09-16T16:00:00Z")); const search = workOrderStatusDrilldownSearch("Scheduled", "today"); expect(search.get("dateFrom")).toBe("2026-09-16"); expect(search.get("dateTo")).toBe("2026-09-16"); expect(search.get("statuses")).toBe("Scheduled"); }); it("omits dates for the all-time range", () => { expect(workOrderRangeDrilldownSearch("all-time").toString()).toBe(""); }); it("renders plain or query-bearing work order URLs", () => { expect(workOrderDrilldownUrl(new URLSearchParams())).toBe("/workorders"); expect(workOrderDrilldownUrl(new URLSearchParams({ statuses: "Scheduled" }))).toBe( "/workorders?statuses=Scheduled", ); }); });