46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
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" },
|
|
});
|
|
});
|
|
});
|