import { describe, expect, it } from "vitest"; import { buildTimelineAllocationEntryUpdate, buildTimelineAllocationMetadata, } from "../router/timeline-allocation-update-support.js"; describe("timeline allocation update support", () => { it("preserves existing metadata while updating includeSaturday", () => { const result = buildTimelineAllocationMetadata({ existingMetadata: { recurrence: { frequency: "weekly", interval: 2 }, includeSaturday: false, }, includeSaturday: true, }); expect(result).toEqual({ metadata: { recurrence: { frequency: "weekly", interval: 2 }, includeSaturday: true, }, includeSaturday: true, }); }); it("builds shared update payloads for demand and assignment changes", () => { expect( buildTimelineAllocationEntryUpdate({ hoursPerDay: 7.5, startDate: new Date("2026-04-01T00:00:00.000Z"), endDate: new Date("2026-04-10T00:00:00.000Z"), metadata: { includeSaturday: true }, dailyCostCents: 48000, role: "Architect", }), ).toEqual({ demandRequirementUpdate: { hoursPerDay: 7.5, startDate: new Date("2026-04-01T00:00:00.000Z"), endDate: new Date("2026-04-10T00:00:00.000Z"), metadata: { includeSaturday: true }, role: "Architect", }, assignmentUpdate: { hoursPerDay: 7.5, startDate: new Date("2026-04-01T00:00:00.000Z"), endDate: new Date("2026-04-10T00:00:00.000Z"), dailyCostCents: 48000, metadata: { includeSaturday: true }, role: "Architect", }, }); }); });