mirror of
https://github.com/hanzoai/calendar.git
synced 2026-09-24 22:42:24 +00:00
46 lines
1.4 KiB
TypeScript
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.");
|
|
});
|
|
});
|