mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-10-07 16:19:01 +00:00
29 lines
1.4 KiB
TypeScript
29 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
clearDueDateBeforeSchedule,
|
|
isDueDateBeforeFloor,
|
|
resolveDueDateFloor,
|
|
} from "@/domain/work-orders/utils/due-date-floor";
|
|
|
|
describe("due date floor (SH-356)", () => {
|
|
it("uses the concrete or range-start Schedule On, else the target week's first day", () => {
|
|
expect(resolveDueDateFloor({ scheduledOn: "2026-09-10", targetWeek: "" })).toBe("2026-09-10");
|
|
expect(resolveDueDateFloor({ scheduledOn: "", targetWeek: "2026-09-14" })).toBe("2026-09-14");
|
|
expect(resolveDueDateFloor({ scheduledOn: "", targetWeek: "" })).toBe("");
|
|
expect(resolveDueDateFloor({ scheduledOn: null, targetWeek: undefined })).toBe("");
|
|
});
|
|
|
|
it("flags only a Due Date strictly before the floor", () => {
|
|
expect(isDueDateBeforeFloor("2026-09-09", "2026-09-10")).toBe(true);
|
|
expect(isDueDateBeforeFloor("2026-09-10", "2026-09-10")).toBe(false);
|
|
expect(isDueDateBeforeFloor("", "2026-09-10")).toBe(false);
|
|
expect(isDueDateBeforeFloor("2026-09-09", "")).toBe(false);
|
|
});
|
|
|
|
it("clears (never bumps) a Due Date the new schedule passes", () => {
|
|
expect(clearDueDateBeforeSchedule("2026-09-12", "2026-09-15")).toEqual({ dueDate: "" });
|
|
expect(clearDueDateBeforeSchedule("2026-09-12", "2026-09-12")).toEqual({});
|
|
expect(clearDueDateBeforeSchedule("2026-09-20", "2026-09-15")).toEqual({});
|
|
expect(clearDueDateBeforeSchedule("2026-09-12", "")).toEqual({});
|
|
});
|
|
});
|