Files
CapaKraken/packages/api/src/__tests__/timeline-allocation-update-support.test.ts
T

55 lines
1.6 KiB
TypeScript

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",
},
});
});
});