fix: Fix "Could not book the meeting" issue (fix-bookingIssue) (#12252)
Co-authored-by: gitstart-calcom <gitstart-calcom@users.noreply.github.com>
This commit is contained in:
co-authored by
gitstart-calcom
parent
8b89d6635a
commit
d28e20e92e
@@ -179,6 +179,38 @@ describe("processWorkingHours", () => {
|
||||
expect(allDSTStartAt12).toBeTruthy();
|
||||
expect(allNotDSTStartAt13).toBeTruthy();
|
||||
});
|
||||
|
||||
it("should skip event if it ends before it starts (different days)", () => {
|
||||
const item = {
|
||||
days: [1, 2, 3],
|
||||
startTime: new Date(new Date().setUTCHours(8, 0, 0, 0)), // 8 AM
|
||||
endTime: new Date(new Date().setUTCHours(7, 0, 0, 0)), // 7 AM
|
||||
};
|
||||
|
||||
const timeZone = "America/New_York";
|
||||
const dateFrom = dayjs("2023-11-07T00:00:00Z").tz(timeZone); // 2023-11-07T00:00:00 (America/New_York)
|
||||
const dateTo = dayjs("2023-11-08T00:00:00Z").tz(timeZone); // 2023-11-08T00:00:00 (America/New_York)
|
||||
|
||||
const results = processWorkingHours({ item, timeZone, dateFrom, dateTo });
|
||||
|
||||
expect(results).toEqual([]);
|
||||
});
|
||||
|
||||
it("should skip event if it ends before it starts (same day but different hours)", () => {
|
||||
const item = {
|
||||
days: [1],
|
||||
startTime: new Date(new Date().setUTCHours(8, 0, 0, 0)), // 8 AM
|
||||
endTime: new Date(new Date().setUTCHours(7, 0, 0, 0)), // 7 AM
|
||||
};
|
||||
|
||||
const timeZone = "America/New_York";
|
||||
const dateFrom = dayjs("2023-11-07T00:00:00Z").tz(timeZone); // 2023-11-07T00:00:00 (America/New_York)
|
||||
const dateTo = dayjs("2023-11-07T23:59:59Z").tz(timeZone); // 2023-11-07T23:59:59 (America/New_York)
|
||||
|
||||
const results = processWorkingHours({ item, timeZone, dateFrom, dateTo });
|
||||
|
||||
expect(results).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("processDateOverrides", () => {
|
||||
|
||||
@@ -47,7 +47,11 @@ export function processWorkingHours({
|
||||
const startResult = dayjs.max(start, dateFrom.tz(timeZone));
|
||||
const endResult = dayjs.min(end, dateTo.tz(timeZone));
|
||||
|
||||
if (startResult.isAfter(endResult)) {
|
||||
const isLater =
|
||||
startResult.isAfter(endResult, "hour") ||
|
||||
(startResult.isSame(endResult, "hour") && startResult.isAfter(endResult, "minute"));
|
||||
|
||||
if (isLater) {
|
||||
// if an event ends before start, it's not a result.
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user