diff --git a/src/domain/dashboard/utils/work-order-drilldown-links.ts b/src/domain/dashboard/utils/work-order-drilldown-links.ts index 4388c018..c1241382 100644 --- a/src/domain/dashboard/utils/work-order-drilldown-links.ts +++ b/src/domain/dashboard/utils/work-order-drilldown-links.ts @@ -1,7 +1,7 @@ import { ALL_WIZARD_STATUSES } from "@/domain/work-orders/types/work-order-wizard"; import { WO_TYPES, type WOType } from "@/domain/work-orders/types/work-order-wizard"; import type { DashboardRangeKey } from "@/domain/dashboard/types/dashboard-range"; -import { BOARD_DISPATCHER_UNASSIGNED } from "@/domain/work-orders/types/work-order-board"; +import { ASSIGNEE_FILTER_UNASSIGNED } from "@/domain/work-orders/types/work-order-list"; import { addDaysIso, businessTodayIso, @@ -85,7 +85,7 @@ export function workOrderRegionDrilldownSearch( */ export function unassignedDrilldownSearch(range: DashboardRangeKey): URLSearchParams { const search = workOrderRangeDrilldownSearch(range); - search.set("dispatchers", BOARD_DISPATCHER_UNASSIGNED); + search.set("dispatchers", ASSIGNEE_FILTER_UNASSIGNED); search.set("statuses", OPEN_WIZARD_STATUSES.join(",")); return search; } diff --git a/src/test/app/(protected)/dashboard/dashboard-page.test.tsx b/src/test/app/(protected)/dashboard/dashboard-page.test.tsx index 1c730a6f..b74fd594 100644 --- a/src/test/app/(protected)/dashboard/dashboard-page.test.tsx +++ b/src/test/app/(protected)/dashboard/dashboard-page.test.tsx @@ -273,7 +273,7 @@ describe("DashboardPage", () => { const weekUrl = new URL(lastNavigation(), "http://x"); expect(weekUrl.pathname).toBe("/workorders"); - expect(weekUrl.searchParams.get("dispatchers")).toBe("__unassigned__"); + expect(weekUrl.searchParams.get("dispatchers")).toBe("__unassigned"); expect(weekUrl.searchParams.get("statuses")).not.toContain("Completed"); expect(weekUrl.searchParams.get("dateFrom")).toMatch(/^\d{4}-\d{2}-\d{2}$/); expect(weekUrl.searchParams.get("dateTo")).toMatch(/^\d{4}-\d{2}-\d{2}$/); @@ -282,7 +282,7 @@ describe("DashboardPage", () => { fireEvent.click(screen.getByRole("button", { name: /Unassigned/ })); const allTimeUrl = new URL(lastNavigation(), "http://x"); - expect(allTimeUrl.searchParams.get("dispatchers")).toBe("__unassigned__"); + expect(allTimeUrl.searchParams.get("dispatchers")).toBe("__unassigned"); expect(allTimeUrl.searchParams.has("dateFrom")).toBe(false); expect(allTimeUrl.searchParams.has("dateTo")).toBe(false); }); diff --git a/src/test/domain/work-orders/dashboard-drilldown-params.test.ts b/src/test/domain/work-orders/dashboard-drilldown-params.test.ts index 6557acd2..7faab8b0 100644 --- a/src/test/domain/work-orders/dashboard-drilldown-params.test.ts +++ b/src/test/domain/work-orders/dashboard-drilldown-params.test.ts @@ -5,6 +5,8 @@ import { unassignedDrilldownSearch, } from "@/domain/dashboard/utils/work-order-drilldown-links"; import { NON_TERMINAL_LIFECYCLE_STATUSES } from "@/domain/work-orders/types/work-order-board"; +import { ASSIGNEE_FILTER_UNASSIGNED } from "@/domain/work-orders/types/work-order-list"; +import { buildAdvancedFilterChips } from "@/domain/work-orders/utils/advanced-filters-utils"; import { toBoardSearchQueryParams } from "@/domain/work-orders/utils/board-query-params"; describe("parseDashboardDrilldownParams", () => { @@ -88,6 +90,18 @@ describe("parseDashboardDrilldownParams", () => { expect(weekParams.includeDateless).toBeUndefined(); }); + it("opens the Unassigned tile link as the Unassigned option of Assigned to", () => { + const filters = parseDashboardDrilldownParams(unassignedDrilldownSearch("this-week")); + expect(filters?.dispatchers).toEqual(new Set([ASSIGNEE_FILTER_UNASSIGNED])); + + const chips = buildAdvancedFilterChips(filters!, { dispatcherNameOf: (id) => id }); + const assignedTo = chips.filter((chip) => chip.group === "Assigned to"); + expect(assignedTo.map((chip) => chip.value)).toEqual(["Unassigned"]); + + const cleared = assignedTo[0]!.clear(filters!); + expect(cleared.dispatchers.size).toBe(0); + }); + it("rejects partial or malformed date ranges", () => { expect( parseDashboardDrilldownParams(