R62 A1-A6:2026年中国法定假期日历

这个提交包含在:
2026-04-12 21:31:24 +08:00
父节点 97b679033e
当前提交 f8d941ec64
共修改 10 个文件,包含 638 行新增和 31 行删除
+49
查看文件
@@ -1,6 +1,7 @@
const {
calculateRequestedDays,
calculateRequestedDaysByWorkingCalendar,
calculateRequestedDaysPreviewByWorkingCalendar,
leaveRangesOverlap,
summarizeLeaveLedgerEntries,
} = require("../../../src/services/leave");
@@ -98,6 +99,54 @@ describe("Leave Service", () => {
});
});
describe("calculateRequestedDaysPreviewByWorkingCalendar", () => {
it("returns official holiday counts while excluding holidays from requested days", () => {
expect(
calculateRequestedDaysPreviewByWorkingCalendar({
startDate: "2026-01-01",
endDate: "2026-01-04",
startSession: "am",
endSession: "pm",
calendarDays: [
{ date: "2026-01-01", day_type: "holiday" },
{ date: "2026-01-02", day_type: "holiday" },
{ date: "2026-01-03", day_type: "holiday" },
{ date: "2026-01-04", day_type: "adjusted_workday" },
],
}),
).toEqual({
requestedDays: 1,
naturalRequestedDays: 4,
holidayDayCount: 3,
weekendDayCount: 0,
adjustedWorkdayCount: 1,
calendarApplied: true,
});
});
it("keeps half-day precision for adjusted workdays in preview payload", () => {
expect(
calculateRequestedDaysPreviewByWorkingCalendar({
startDate: "2026-01-03",
endDate: "2026-01-04",
startSession: "pm",
endSession: "am",
calendarDays: [
{ date: "2026-01-03", day_type: "holiday" },
{ date: "2026-01-04", day_type: "adjusted_workday" },
],
}),
).toEqual({
requestedDays: 0.5,
naturalRequestedDays: 1,
holidayDayCount: 0.5,
weekendDayCount: 0,
adjustedWorkdayCount: 0.5,
calendarApplied: true,
});
});
});
describe("leaveRangesOverlap", () => {
it("detects overlapping half-day ranges", () => {
expect(