82 lines
2.2 KiB
TypeScript
82 lines
2.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
buildTimelineEntriesDetailInput,
|
|
} from "../router/timeline-read-shared.js";
|
|
import {
|
|
TimelineDetailFiltersSchema,
|
|
TimelineProjectContextDetailSchema,
|
|
TimelineProjectIdSchema,
|
|
} from "../router/timeline-read-schema-support.js";
|
|
|
|
describe("timeline read shared", () => {
|
|
it("builds detail input from period and normalized filters", () => {
|
|
expect(
|
|
buildTimelineEntriesDetailInput({
|
|
startDate: "2026-04-01",
|
|
durationDays: 3,
|
|
resourceIds: [" resource_1 ", ""],
|
|
projectIds: ["project_1"],
|
|
chapters: [" Compositing "],
|
|
}),
|
|
).toEqual({
|
|
period: {
|
|
startDate: new Date("2026-04-01T00:00:00.000Z"),
|
|
endDate: new Date("2026-04-03T00:00:00.000Z"),
|
|
},
|
|
filters: {
|
|
resourceIds: ["resource_1"],
|
|
projectIds: ["project_1"],
|
|
clientIds: undefined,
|
|
chapters: ["Compositing"],
|
|
eids: undefined,
|
|
countryCodes: undefined,
|
|
},
|
|
timelineInput: {
|
|
startDate: new Date("2026-04-01T00:00:00.000Z"),
|
|
endDate: new Date("2026-04-03T00:00:00.000Z"),
|
|
resourceIds: ["resource_1"],
|
|
projectIds: ["project_1"],
|
|
clientIds: undefined,
|
|
chapters: ["Compositing"],
|
|
eids: undefined,
|
|
countryCodes: undefined,
|
|
},
|
|
});
|
|
});
|
|
|
|
it("shares detail filter schemas across timeline read endpoints", () => {
|
|
expect(TimelineDetailFiltersSchema.parse({
|
|
startDate: "2026-04-01",
|
|
durationDays: 14,
|
|
resourceIds: ["resource_1"],
|
|
countryCodes: ["DE"],
|
|
})).toEqual({
|
|
startDate: "2026-04-01",
|
|
endDate: undefined,
|
|
durationDays: 14,
|
|
resourceIds: ["resource_1"],
|
|
projectIds: undefined,
|
|
clientIds: undefined,
|
|
chapters: undefined,
|
|
eids: undefined,
|
|
countryCodes: ["DE"],
|
|
});
|
|
|
|
expect(TimelineProjectContextDetailSchema.parse({
|
|
projectId: "project_1",
|
|
endDate: "2026-04-20",
|
|
})).toEqual({
|
|
projectId: "project_1",
|
|
startDate: undefined,
|
|
endDate: "2026-04-20",
|
|
durationDays: undefined,
|
|
});
|
|
|
|
expect(TimelineProjectIdSchema.parse({
|
|
projectId: "project_1",
|
|
})).toEqual({
|
|
projectId: "project_1",
|
|
});
|
|
});
|
|
});
|