From ec1ff7eb6858467be090e72c7fa5562a033cc03a Mon Sep 17 00:00:00 2001 From: Romit <85230081+romitg2@users.noreply.github.com> Date: Mon, 27 Apr 2026 00:45:21 +0530 Subject: [PATCH] cleanup(test): remove team duration limit integration coverage (#29015) --- .../durationLimits.integration-test.ts | 213 ------------------ 1 file changed, 213 deletions(-) delete mode 100644 apps/web/test/lib/getSchedule/durationLimits.integration-test.ts diff --git a/apps/web/test/lib/getSchedule/durationLimits.integration-test.ts b/apps/web/test/lib/getSchedule/durationLimits.integration-test.ts deleted file mode 100644 index 18db56fb6c..0000000000 --- a/apps/web/test/lib/getSchedule/durationLimits.integration-test.ts +++ /dev/null @@ -1,213 +0,0 @@ -import { afterAll, beforeAll, describe, test, vi } from "vitest"; - -import { getAvailableSlotsService } from "@calcom/features/di/containers/AvailableSlots"; -import { prisma } from "@calcom/prisma"; -import type { EventType, Schedule, Team, User } from "@calcom/prisma/client"; -import { BookingStatus, MembershipRole, SchedulingType } from "@calcom/prisma/enums"; - -import { expect } from "./expects"; - -describe("getSchedule duration limits (integration)", () => { - let user1: User; - let user2: User; - let team: Team; - let schedule1: Schedule; - let schedule2: Schedule; - let eventType: EventType; - const createdBookingIds: number[] = []; - - beforeAll(async () => { - const timestamp = Date.now(); - - vi.stubEnv("UPSTASH_REDIS_REST_URL", undefined); - vi.stubEnv("UPSTASH_REDIS_REST_TOKEN", undefined); - - [user1, user2] = await Promise.all([ - prisma.user.create({ - data: { - username: `dur-limit-user-1-${timestamp}`, - name: "Duration Limit User 1", - email: `dur-limit-user-1-${timestamp}@example.com`, - }, - }), - prisma.user.create({ - data: { - username: `dur-limit-user-2-${timestamp}`, - name: "Duration Limit User 2", - email: `dur-limit-user-2-${timestamp}@example.com`, - }, - }), - ]); - - [schedule1, schedule2] = await Promise.all([ - prisma.schedule.create({ - data: { - name: `Schedule 1 ${timestamp}`, - userId: user1.id, - timeZone: "UTC", - }, - }), - prisma.schedule.create({ - data: { - name: `Schedule 2 ${timestamp}`, - userId: user2.id, - timeZone: "UTC", - }, - }), - ]); - - await prisma.availability.createMany({ - data: [ - { - scheduleId: schedule1.id, - days: [0, 1, 2, 3, 4, 5, 6], - startTime: new Date("1970-01-01T09:00:00.000Z"), - endTime: new Date("1970-01-01T17:00:00.000Z"), - }, - { - scheduleId: schedule2.id, - days: [0, 1, 2, 3, 4, 5, 6], - startTime: new Date("1970-01-01T09:00:00.000Z"), - endTime: new Date("1970-01-01T17:00:00.000Z"), - }, - ], - }); - - await Promise.all([ - prisma.user.update({ - where: { id: user1.id }, - data: { defaultScheduleId: schedule1.id }, - }), - prisma.user.update({ - where: { id: user2.id }, - data: { defaultScheduleId: schedule2.id }, - }), - ]); - - team = await prisma.team.create({ - data: { - name: `Duration Limit Team ${timestamp}`, - slug: `duration-limit-team-${timestamp}`, - }, - }); - - await prisma.membership.createMany({ - data: [ - { - userId: user1.id, - teamId: team.id, - role: MembershipRole.ADMIN, - accepted: true, - }, - { - userId: user2.id, - teamId: team.id, - role: MembershipRole.MEMBER, - accepted: true, - }, - ], - }); - - eventType = await prisma.eventType.create({ - data: { - title: "Duration Limit Event", - slug: `duration-limit-event-${timestamp}`, - length: 30, - slotInterval: 30, - teamId: team.id, - userId: user1.id, - schedulingType: SchedulingType.ROUND_ROBIN, - durationLimits: { PER_YEAR: 480 }, - users: { - connect: [{ id: user1.id }, { id: user2.id }], - }, - hosts: { - createMany: { - data: [ - { userId: user1.id, isFixed: false }, - { userId: user2.id, isFixed: false }, - ], - }, - }, - }, - }); - - const [booking1, booking2] = await Promise.all([ - prisma.booking.create({ - data: { - uid: `dur-limit-booking-1-${timestamp}`, - title: "Duration Limit Booking 1", - status: BookingStatus.ACCEPTED, - userId: user1.id, - eventTypeId: eventType.id, - startTime: new Date("2026-01-10T00:00:00.000Z"), - endTime: new Date("2026-01-10T06:40:00.000Z"), // 400 minutes - }, - }), - prisma.booking.create({ - data: { - uid: `dur-limit-booking-2-${timestamp}`, - title: "Duration Limit Booking 2", - status: BookingStatus.ACCEPTED, - userId: user2.id, - eventTypeId: eventType.id, - startTime: new Date("2026-01-11T00:00:00.000Z"), - endTime: new Date("2026-01-11T06:40:00.000Z"), // 400 minutes - }, - }), - ]); - - createdBookingIds.push(booking1.id, booking2.id); - }); - - afterAll(async () => { - vi.useRealTimers(); - if (createdBookingIds.length > 0) { - await prisma.booking.deleteMany({ - where: { id: { in: createdBookingIds } }, - }); - } - if (eventType?.id) { - await prisma.eventType.delete({ - where: { id: eventType.id }, - }); - } - await prisma.availability.deleteMany({ - where: { scheduleId: { in: [schedule1?.id, schedule2?.id].filter(Boolean) } }, - }); - await prisma.schedule.deleteMany({ - where: { id: { in: [schedule1?.id, schedule2?.id].filter(Boolean) } }, - }); - await prisma.membership.deleteMany({ - where: { teamId: team?.id }, - }); - if (team?.id) { - await prisma.team.delete({ - where: { id: team.id }, - }); - } - await prisma.user.deleteMany({ - where: { id: { in: [user1?.id, user2?.id].filter(Boolean) } }, - }); - }); - - test("yearly duration limit is enforced event-type-wide", async () => { - vi.setSystemTime("2026-02-01T00:00:00Z"); - const dateString = "2026-02-10"; - - const availableSlotsService = getAvailableSlotsService(); - const scheduleForEvent = await availableSlotsService.getAvailableSlots({ - input: { - eventTypeId: eventType.id, - eventTypeSlug: "", - startTime: `${dateString}T00:00:00.000Z`, - endTime: `${dateString}T23:59:59.999Z`, - timeZone: "UTC", - isTeamEvent: true, - orgSlug: null, - }, - }); - - expect(scheduleForEvent).toHaveDateDisabled({ dateString }); - }); -});