import { describe, expect, it } from "vitest"; import { draftHasScheduleDate, getInlineCreateMissing, inlineCreateSaveHint, inlineCreateSiteError, } from "@/domain/work-orders/utils/get-inline-create-missing"; describe("getInlineCreateMissing", () => { it("returns empty when Site, WO#, and POC are filled even without schedule", () => { expect( getInlineCreateMissing({ site: "BK5", locationId: "12", woNumber: "25001", pocName: "Jane", pocPhone: "555-0100", }), ).toEqual([]); }); it("accepts locationId alone as site presence", () => { expect( getInlineCreateMissing({ site: "", locationId: 42, woNumber: "25001", pocName: "Jane", pocPhone: "555-0100", }), ).toEqual([]); }); it("lists missing POC fields without requiring schedule", () => { expect( getInlineCreateMissing({ site: "BK5", woNumber: "25001", pocName: "", pocPhone: "", }), ).toEqual(["pocName", "pocPhone"]); }); it("lists site and woNumber when empty", () => { expect(getInlineCreateMissing({})).toEqual(["site", "woNumber", "pocName", "pocPhone"]); }); }); describe("inlineCreateSaveHint", () => { it("returns Save when ready", () => { expect(inlineCreateSaveHint([])).toBe("Save"); }); it("lists missing labels", () => { expect(inlineCreateSaveHint(["site", "woNumber"])).toBe("Missing: Site, WO #"); }); }); describe("inlineCreateSiteError", () => { it("prefers site-required message when site is missing", () => { expect(inlineCreateSiteError(["site", "pocName"])).toBe("Site is required"); }); it("surfaces contact message when only POC is missing", () => { expect(inlineCreateSiteError(["pocName", "pocPhone"])).toBe( "Contact name and phone are required", ); }); }); describe("draftHasScheduleDate", () => { it("is true for a concrete day", () => { expect(draftHasScheduleDate({ scheduledOn: "2026-06-25" })).toBe(true); }); it("is false for week-only", () => { expect( draftHasScheduleDate({ scheduledOn: "", scheduleWeekOnly: true, schedMode: "week" }), ).toBe(false); }); });