fix: Check for same day, not with <= (#12167)
* fix: Check for same day, not with <= * Cover this situation with a test * Make the test timezone-independentpull/12168/head^2
parent
b4d27a9326
commit
4de142cb7c
|
@ -1,5 +1,6 @@
|
|||
import { describe, expect, test, vi } from "vitest";
|
||||
|
||||
import dayjs from "@calcom/dayjs";
|
||||
import { getAvailableDatesInMonth } from "@calcom/features/calendars/lib/getAvailableDatesInMonth";
|
||||
import { daysInMonth, yyyymmdd } from "@calcom/lib/date-fns";
|
||||
|
||||
|
@ -63,5 +64,22 @@ describe("Test Suite: Date Picker", () => {
|
|||
vi.setSystemTime(vi.getRealSystemTime());
|
||||
vi.useRealTimers();
|
||||
});
|
||||
|
||||
test("it returns the correct responses end of month", () => {
|
||||
// test a date at one minute past midnight, end of month.
|
||||
// we use dayjs() as the system timezone can still modify the Date.
|
||||
vi.useFakeTimers().setSystemTime(dayjs().endOf("month").startOf("day").add(1, "second").toDate());
|
||||
|
||||
const currentDate = new Date();
|
||||
const result = getAvailableDatesInMonth({
|
||||
browsingDate: currentDate,
|
||||
});
|
||||
|
||||
expect(result).toHaveLength(1);
|
||||
|
||||
// Undo the forced time we applied earlier, reset to system default.
|
||||
vi.setSystemTime(vi.getRealSystemTime());
|
||||
vi.useRealTimers();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import dayjs from "@calcom/dayjs";
|
||||
import { daysInMonth, yyyymmdd } from "@calcom/lib/date-fns";
|
||||
|
||||
// calculate the available dates in the month:
|
||||
|
@ -21,7 +22,9 @@ export function getAvailableDatesInMonth({
|
|||
);
|
||||
for (
|
||||
let date = browsingDate > minDate ? browsingDate : minDate;
|
||||
date <= lastDateOfMonth;
|
||||
// Check if date is before the last date of the month
|
||||
// or is the same day, in the same month, in the same year.
|
||||
date < lastDateOfMonth || dayjs(date).isSame(lastDateOfMonth, "day");
|
||||
date = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1)
|
||||
) {
|
||||
// intersect included dates
|
||||
|
|
Loading…
Reference in New Issue