import { describe, expect, it } from "vitest"; import { buildTimelineQuickAssignAssignmentInput, buildTimelineQuickAssignMetadata, calculateTimelineAllocationPercentage, } from "../router/timeline-allocation-quick-assign-support.js"; describe("timeline allocation quick assign support", () => { it("rounds allocation percentages and clamps them to 100", () => { expect(calculateTimelineAllocationPercentage(3.9)).toBe(49); expect(calculateTimelineAllocationPercentage(9)).toBe(100); }); it("builds source metadata for quick assign operations", () => { expect(buildTimelineQuickAssignMetadata("quickAssign")).toEqual({ source: "quickAssign" }); expect(buildTimelineQuickAssignMetadata("batchQuickAssign")).toEqual({ source: "batchQuickAssign" }); }); it("builds assignment create payloads for quick assign flows", () => { expect( buildTimelineQuickAssignAssignmentInput({ resourceId: "resource_1", projectId: "project_1", startDate: new Date("2026-04-01T00:00:00.000Z"), endDate: new Date("2026-04-05T00:00:00.000Z"), hoursPerDay: 6, role: "Engineer", roleId: "role_1", status: "PROPOSED", source: "quickAssign", }), ).toEqual({ resourceId: "resource_1", projectId: "project_1", startDate: new Date("2026-04-01T00:00:00.000Z"), endDate: new Date("2026-04-05T00:00:00.000Z"), hoursPerDay: 6, percentage: 75, role: "Engineer", roleId: "role_1", status: "PROPOSED", metadata: { source: "quickAssign" }, }); }); });