Skip to content

Commit b6c243f

Browse files
fix: improve cleanup for managed event types and fix flaky api v2 e2e test (calcom#26602)
* fix: improve cleanup for managed event types in e2e tests - Add deleteAllUserEventTypes method to EventTypesRepositoryFixture - Update afterAll cleanup to delete user event types before deleting users - This ensures child event types of managed event types are properly cleaned up - Fixes flaky tests caused by incomplete cleanup between test runs - Add explicit return types to fixture methods to satisfy lint rules - Replace @ts-ignore with @ts-expect-error for better type safety Co-Authored-By: anik@cal.com <adhabal2002@gmail.com> * fix --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1 parent b78ca7b commit b6c243f

2 files changed

Lines changed: 13 additions & 4 deletions

File tree

apps/api/v2/src/modules/organizations/event-types/organizations-member-team-admin-event-types.e2e-spec.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ describe("Organizations Event Types Endpoints", () => {
6767

6868
beforeAll(async () => {
6969
// Generate unique slug inside beforeAll to ensure uniqueness across test runs
70-
managedEventTypeSlug = `organizations-event-types-managed-${randomString()}`;
70+
managedEventTypeSlug = `organizations-event-types-managed-${Date.now()}-${randomString()}`;
7171
const moduleRef = await withApiAuth(
7272
userEmail,
7373
Test.createTestingModule({
@@ -1381,13 +1381,14 @@ describe("Organizations Event Types Endpoints", () => {
13811381
}
13821382

13831383
afterAll(async () => {
1384+
await eventTypesRepositoryFixture.deleteAllUserEventTypes(teammate1.id);
1385+
await eventTypesRepositoryFixture.deleteAllUserEventTypes(teammate2.id);
1386+
await eventTypesRepositoryFixture.deleteAllTeamEventTypes(team.id);
1387+
await eventTypesRepositoryFixture.deleteAllTeamEventTypes(falseTestTeam.id);
13841388
await userRepositoryFixture.deleteByEmail(userAdmin.email);
13851389
await userRepositoryFixture.deleteByEmail(teammate1.email);
13861390
await userRepositoryFixture.deleteByEmail(teammate2.email);
13871391
await userRepositoryFixture.deleteByEmail(falseTestUser.email);
1388-
// Explicitly delete all team event types before deleting the team to ensure proper cleanup
1389-
await eventTypesRepositoryFixture.deleteAllTeamEventTypes(team.id);
1390-
await eventTypesRepositoryFixture.deleteAllTeamEventTypes(falseTestTeam.id);
13911392
await teamsRepositoryFixture.delete(team.id);
13921393
await teamsRepositoryFixture.delete(falseTestTeam.id);
13931394
await organizationsRepositoryFixture.delete(org.id);

apps/api/v2/test/fixtures/repository/event-types.repository.fixture.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ export class EventTypesRepositoryFixture {
6666
});
6767
}
6868

69+
async deleteAllUserEventTypes(userId: number) {
70+
return this.prismaWriteClient.eventType.deleteMany({
71+
where: {
72+
userId,
73+
},
74+
});
75+
}
76+
6977
async findById(eventTypeId: EventType["id"]) {
7078
return this.prismaReadClient.eventType.findUnique({ where: { id: eventTypeId } });
7179
}

0 commit comments

Comments
 (0)