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:
gitstart-app[bot]
2023-11-07 12:33:49 -03:00
committed by GitHub
co-authored by gitstart-calcom
parent 8b89d6635a
commit d28e20e92e
2 changed files with 37 additions and 1 deletions
+32
View File
@@ -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", () => {
+5 -1
View File
@@ -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;
}