From 357d713011feae1f7058b23638deafcbaa68aee1 Mon Sep 17 00:00:00 2001 From: Shaik-Sirajuddin Date: Sat, 8 Jun 2024 21:42:33 +0530 Subject: [PATCH] fix: timezone dependent unit test fail when not on utc --- .../handleNewBooking/test/date-overrides.test.ts | 12 ++++++++---- packages/lib/date-ranges.test.ts | 16 ++++++++-------- packages/prisma/zod-utils.ts | 2 +- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/features/bookings/lib/handleNewBooking/test/date-overrides.test.ts b/packages/features/bookings/lib/handleNewBooking/test/date-overrides.test.ts index 7585842ef2133c..11fbb802c2411b 100644 --- a/packages/features/bookings/lib/handleNewBooking/test/date-overrides.test.ts +++ b/packages/features/bookings/lib/handleNewBooking/test/date-overrides.test.ts @@ -56,14 +56,16 @@ describe("handleNewBooking", () => { }); // Using .endOf("day") here to ensure our date doesn't change when we set the time zone - const startDateTimeOrganizerTz = dayjs(plus1DateString) + const startDateTimeOrganizerTz = dayjs + .utc(plus1DateString) .endOf("day") .tz(newYorkTimeZone) .hour(11) .minute(0) .second(0); - const endDateTimeOrganizerTz = dayjs(plus1DateString) + const endDateTimeOrganizerTz = dayjs + .utc(plus1DateString) .endOf("day") .tz(newYorkTimeZone) .hour(12) @@ -217,14 +219,16 @@ describe("handleNewBooking", () => { }); // Using .endOf("day") here to ensure our date doesn't change when we set the time zone - const startDateTimeOrganizerTz = dayjs(plus1DateString) + const startDateTimeOrganizerTz = dayjs + .utc(plus1DateString) .endOf("day") .tz(newYorkTimeZone) .hour(23) .minute(0) .second(0); - const endDateTimeOrganizerTz = dayjs(plus1DateString) + const endDateTimeOrganizerTz = dayjs + .utc(plus1DateString) .endOf("day") .tz(newYorkTimeZone) .startOf("day") diff --git a/packages/lib/date-ranges.test.ts b/packages/lib/date-ranges.test.ts index 9e766b18d70fea..64cf0096d3878f 100644 --- a/packages/lib/date-ranges.test.ts +++ b/packages/lib/date-ranges.test.ts @@ -159,13 +159,13 @@ describe("processWorkingHours", () => { // in America/New_York DST ends on first Sunday of November const timeZone = "America/New_York"; - let firstSundayOfNovember = dayjs().startOf("day").month(10).date(1); + let firstSundayOfNovember = dayjs.utc().startOf("day").month(10).date(1); while (firstSundayOfNovember.day() !== 0) { firstSundayOfNovember = firstSundayOfNovember.add(1, "day"); } - const dateFrom = dayjs().month(10).date(1).startOf("day"); - const dateTo = dayjs().month(10).endOf("month"); + const dateFrom = dayjs.utc().month(10).date(1).startOf("day"); + const dateTo = dayjs.utc().month(10).endOf("month"); const results = processWorkingHours({ item, timeZone, dateFrom, dateTo, travelSchedules: [] }); @@ -223,17 +223,17 @@ describe("processWorkingHours", () => { const timeZone = "Europe/Berlin"; - const dateFrom = dayjs().startOf("day"); - const dateTo = dayjs().add(1, "week").startOf("day"); + const dateFrom = dayjs.utc().startOf("day"); + const dateTo = dayjs.utc().add(1, "week").startOf("day"); const travelSchedules = [ { - startDate: dayjs().add(2, "day").startOf("day"), - endDate: dayjs().add(3, "day").endOf("day"), + startDate: dayjs.utc().add(2, "day").startOf("day"), + endDate: dayjs.utc().add(3, "day").endOf("day"), timeZone: "America/New_York", }, { - startDate: dayjs().add(5, "day").startOf("day"), + startDate: dayjs.utc().add(5, "day").startOf("day"), timeZone: "Asia/Kolkata", }, ]; diff --git a/packages/prisma/zod-utils.ts b/packages/prisma/zod-utils.ts index f5c6f373440644..c5cb994d2e8b5e 100644 --- a/packages/prisma/zod-utils.ts +++ b/packages/prisma/zod-utils.ts @@ -210,7 +210,7 @@ export const stringOrNumber = z.union([ export const stringToDayjs = (val: string) => { const matches = val.match(/([+-]\d{2}:\d{2})$/); const timezone = matches ? matches[1] : "+00:00"; - return dayjs(val).utcOffset(timezone); + return dayjs.utc(val).utcOffset(timezone); }; export const stringToDayjsZod = z.string().transform(stringToDayjs);