From 11a06324beeff1374db13570ce923e7200145d26 Mon Sep 17 00:00:00 2001 From: Alex van Andel Date: Wed, 18 Jun 2025 12:28:32 +0100 Subject: [PATCH] fix: 'handles OOO correctly' test fail in non-UTC servertime (#21899) --- packages/lib/date-ranges.test.ts | 8 ++++---- packages/lib/date-ranges.ts | 9 +++------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/packages/lib/date-ranges.test.ts b/packages/lib/date-ranges.test.ts index 9e766b18d7..599c93d34a 100644 --- a/packages/lib/date-ranges.test.ts +++ b/packages/lib/date-ranges.test.ts @@ -545,13 +545,13 @@ describe("buildDateRanges", () => { }); expect(dateRanges[0]).toEqual({ - start: dayjs("2023-06-13T14:00:00Z").tz(timeZone), - end: dayjs("2023-06-13T19:00:00Z").tz(timeZone), + start: dayjs.utc("2023-06-13T14:00:00Z").tz(timeZone), + end: dayjs.utc("2023-06-13T19:00:00Z").tz(timeZone), }); expect(dateRanges[1]).toEqual({ - start: dayjs("2023-06-14T12:00:00Z").tz(timeZone), - end: dayjs("2023-06-14T21:00:00Z").tz(timeZone), + start: dayjs.utc("2023-06-14T12:00:00Z").tz(timeZone), + end: dayjs.utc("2023-06-14T21:00:00Z").tz(timeZone), }); expect(oooExcludedDateRanges.length).toBe(1); expect(oooExcludedDateRanges[0]).toEqual({ diff --git a/packages/lib/date-ranges.ts b/packages/lib/date-ranges.ts index 94d330cdec..130f623a4f 100644 --- a/packages/lib/date-ranges.ts +++ b/packages/lib/date-ranges.ts @@ -132,12 +132,9 @@ export function processDateOverride({ }; } +// This function processes out-of-office dates and returns a date range for each OOO date. function processOOO(outOfOffice: Dayjs, timeZone: string) { - const utcOffset = outOfOffice.tz(timeZone).utcOffset(); - const utcDate = outOfOffice.subtract(utcOffset, "minute"); - - const OOOdate = utcDate.tz(timeZone); - + const OOOdate = outOfOffice.tz(timeZone, true); return { start: OOOdate, end: OOOdate, @@ -171,7 +168,7 @@ export function buildDateRanges({ }, []) ); const OOOdates = outOfOffice - ? Object.keys(outOfOffice).map((outOfOffice) => processOOO(dayjs(outOfOffice), timeZone)) + ? Object.keys(outOfOffice).map((outOfOffice) => processOOO(dayjs.utc(outOfOffice), timeZone)) : []; const groupedOOO = groupByDate(OOOdates);