mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-09-30 10:23:11 +00:00
58 lines
2 KiB
TypeScript
58 lines
2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { buildInlineDraftCreateInput } from "@/app/(protected)/workorders/_components/list/table/build-inline-draft-create-input";
|
|
import { mapWizardDraftToBoardCreatePayload } from "@/domain/work-orders/mappers/work-order-board-mapper";
|
|
import { EMPTY_TABLE_DRAFT } from "@/domain/work-orders/types/work-order-table-row";
|
|
|
|
describe("buildInlineDraftCreateInput", () => {
|
|
it("defaults type to PM and omits schedule flags when undated", () => {
|
|
const draft = {
|
|
...EMPTY_TABLE_DRAFT,
|
|
site: "BK5",
|
|
customer: "Amazon",
|
|
locationId: "9",
|
|
woNumber: "25001",
|
|
pocName: "Jane",
|
|
pocPhone: "555-0100",
|
|
scheduleWeekOnly: true,
|
|
targetWeek: "",
|
|
scheduledOn: "",
|
|
};
|
|
|
|
const input = buildInlineDraftCreateInput(draft, [], [{ id: 9, name: "BK5 · Dallas, TX" }]);
|
|
|
|
expect(input.type).toBe("PM");
|
|
expect(input.scheduleWeekOnly).toBe(false);
|
|
expect(input.scheduledOn).toBe("");
|
|
expect(input.targetWeek).toBe("");
|
|
|
|
const payload = mapWizardDraftToBoardCreatePayload(input);
|
|
expect(payload.scheduledDate).toBeUndefined();
|
|
expect(payload.targetWeek).toBeUndefined();
|
|
expect(payload.scheduleWeekOnly).toBeUndefined();
|
|
expect(payload.woNumber).toBe("25001");
|
|
expect(payload.pocName).toBe("Jane");
|
|
expect(payload.customer).toBe("Amazon");
|
|
expect(input.customer).toBe("Amazon");
|
|
});
|
|
|
|
it("keeps week-only schedule when targetWeek is set", () => {
|
|
const draft = {
|
|
...EMPTY_TABLE_DRAFT,
|
|
site: "BK5",
|
|
locationId: "9",
|
|
woNumber: "25002",
|
|
type: "Reactive" as const,
|
|
pocName: "Jane",
|
|
pocPhone: "555-0100",
|
|
scheduleWeekOnly: true,
|
|
targetWeek: "2026-06-22",
|
|
};
|
|
|
|
const input = buildInlineDraftCreateInput(draft, [], [{ id: 9, name: "BK5 · Dallas, TX" }]);
|
|
const payload = mapWizardDraftToBoardCreatePayload(input);
|
|
|
|
expect(payload.scheduleWeekOnly).toBe(true);
|
|
expect(payload.targetWeek).toBe("2026-06-22");
|
|
expect(payload.scheduledDate).toBeUndefined();
|
|
});
|
|
});
|