Files

46 lines
1.4 KiB
TypeScript

import { describe, it, expect } from "vitest";
import { BookingDateInPastError, isTimeOutOfBounds } from "@calcom/lib/isOutOfBounds";
import { TRPCError } from "@trpc/server";
describe("BookingDateInPastError handling", () => {
it("should convert BookingDateInPastError to TRPCError with BAD_REQUEST code", () => {
const testFilteringLogic = () => {
const mockSlot = {
time: "2024-05-20T12:30:00.000Z", // Past date
attendees: 1,
};
const mockEventType = {
minimumBookingNotice: 0,
};
const isFutureLimitViolationForTheSlot = false; // Mock this to false
let isOutOfBounds = false;
try {
// This will throw BookingDateInPastError for past dates
isOutOfBounds = isTimeOutOfBounds({
time: mockSlot.time,
minimumBookingNotice: mockEventType.minimumBookingNotice,
});
} catch (error) {
if (error instanceof BookingDateInPastError) {
throw new TRPCError({
code: "BAD_REQUEST",
message: error.message,
});
}
throw error;
}
return !isFutureLimitViolationForTheSlot && !isOutOfBounds;
};
// This should throw a TRPCError with BAD_REQUEST code
expect(() => testFilteringLogic()).toThrow(TRPCError);
expect(() => testFilteringLogic()).toThrow("Attempting to book a meeting in the past.");
});
});