103 lines
2.7 KiB
TypeScript
103 lines
2.7 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
buildHolidayCalendarCreateData,
|
|
buildHolidayCalendarEntryCreateData,
|
|
buildHolidayCalendarEntryUpdateData,
|
|
buildHolidayCalendarUpdateData,
|
|
holidayCalendarDetailInclude,
|
|
holidayCalendarEntryOrderBy,
|
|
holidayCalendarListInclude,
|
|
} from "../router/holiday-calendar-support.js";
|
|
|
|
describe("holiday calendar support", () => {
|
|
it("exposes shared include definitions", () => {
|
|
expect(holidayCalendarEntryOrderBy).toEqual([
|
|
{ date: "asc" },
|
|
{ name: "asc" },
|
|
]);
|
|
|
|
expect(holidayCalendarDetailInclude).toEqual({
|
|
country: { select: { id: true, code: true, name: true } },
|
|
metroCity: { select: { id: true, name: true } },
|
|
entries: { orderBy: holidayCalendarEntryOrderBy },
|
|
});
|
|
|
|
expect(holidayCalendarListInclude).toEqual({
|
|
country: { select: { id: true, code: true, name: true } },
|
|
metroCity: { select: { id: true, name: true } },
|
|
entries: { orderBy: holidayCalendarEntryOrderBy },
|
|
_count: { select: { entries: true } },
|
|
});
|
|
});
|
|
|
|
it("builds calendar create and sparse update payloads", () => {
|
|
expect(buildHolidayCalendarCreateData({
|
|
name: "Bayern Feiertage",
|
|
scopeType: "STATE",
|
|
countryId: "country_de",
|
|
stateCode: "by",
|
|
isActive: undefined,
|
|
priority: undefined,
|
|
normalizedScope: {
|
|
stateCode: "BY",
|
|
metroCityId: null,
|
|
},
|
|
})).toEqual({
|
|
name: "Bayern Feiertage",
|
|
scopeType: "STATE",
|
|
countryId: "country_de",
|
|
stateCode: "BY",
|
|
isActive: true,
|
|
priority: 0,
|
|
});
|
|
|
|
expect(buildHolidayCalendarUpdateData({
|
|
data: {
|
|
name: "Augsburg lokal",
|
|
metroCityId: null,
|
|
priority: 7,
|
|
},
|
|
resolvedScope: {
|
|
stateCode: null,
|
|
metroCityId: null,
|
|
},
|
|
})).toEqual({
|
|
name: "Augsburg lokal",
|
|
metroCityId: null,
|
|
priority: 7,
|
|
});
|
|
});
|
|
|
|
it("builds holiday entry create and sparse update payloads", () => {
|
|
const normalizedDate = new Date("2026-01-06T00:00:00.000Z");
|
|
|
|
expect(buildHolidayCalendarEntryCreateData({
|
|
data: {
|
|
holidayCalendarId: "cal_by",
|
|
date: new Date("2026-01-06T13:15:00.000Z"),
|
|
name: "Heilige Drei Koenige",
|
|
isRecurringAnnual: undefined,
|
|
source: "state",
|
|
},
|
|
date: normalizedDate,
|
|
})).toEqual({
|
|
holidayCalendarId: "cal_by",
|
|
date: normalizedDate,
|
|
name: "Heilige Drei Koenige",
|
|
isRecurringAnnual: false,
|
|
source: "state",
|
|
});
|
|
|
|
expect(buildHolidayCalendarEntryUpdateData({
|
|
data: {
|
|
date: normalizedDate,
|
|
source: null,
|
|
},
|
|
date: normalizedDate,
|
|
})).toEqual({
|
|
date: normalizedDate,
|
|
source: null,
|
|
});
|
|
});
|
|
});
|