diff --git a/src/test/domain/work-orders/utils/wo-closability.test.ts b/src/test/domain/work-orders/utils/wo-closability.test.ts index c50b27fb..45182f08 100644 --- a/src/test/domain/work-orders/utils/wo-closability.test.ts +++ b/src/test/domain/work-orders/utils/wo-closability.test.ts @@ -349,6 +349,29 @@ describe("detailToClosabilityInput", () => { }, ); + it.each(["Verified", "Completed", "Sent"])( + "treats dispatch status %s as a live company assignment (SH-183)", + (status) => { + const liveAssignment = { + assignedTo: "Alice", + completedDate: "2026-07-15", + workOrderNumber: "20260623001", + internalWONumber: "SH-1", + problem: "HVAC PM", + source: "procurement-integration", + type: "", + docStatus: "", + mediaCount: 0, + dispatches: [{ vendorName: "ACME Tech", vendorId: 45, status }], + } as WorkOrderDetail; + + const input = detailToClosabilityInput(liveAssignment); + expect(input.company).toBe("ACME Tech"); + expect(input.vendorId).toBe("45"); + expect(getClosabilityGaps(input)).toEqual([]); + }, + ); + it("uses the active dispatch after an inactive cancelled spelling (SH-183)", () => { const supersededThenCurrent = { assignedTo: "Alice",