fix: improve test isolation for managed event type e2e tests (#26283)

- Move managedEventTypeSlug generation inside beforeAll to ensure uniqueness across test runs
- Add deleteAllTeamEventTypes method to EventTypesRepositoryFixture
- Explicitly delete all team event types in afterAll before deleting teams

This fixes flaky tests in organizations-member-team-admin-event-types.e2e-spec.ts
where the managed event type creation was intermittently failing with 400 Bad Request.

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Anik Dhabal BabuandDevin AI authored and GitHub committed 2025-12-29 16:12:01 -03:00
1 parent ed53b4dbe3
commit 96dc3b5cc6
2 files changed
+14 -1

No files matched your search

@@ -63,9 +63,11 @@ describe("Organizations Event Types Endpoints", () => {
let collectiveEventType: TeamEventTypeOutput_2024_06_14;
let managedEventType: TeamEventTypeOutput_2024_06_14;
const managedEventTypeSlug = `organizations-event-types-managed-${randomString()}`;
let managedEventTypeSlug: string;
beforeAll(async () => {
// Generate unique slug inside beforeAll to ensure uniqueness across test runs
managedEventTypeSlug = `organizations-event-types-managed-${randomString()}`;
const moduleRef = await withApiAuth(
userEmail,
Test.createTestingModule({
@@ -1383,6 +1385,9 @@ describe("Organizations Event Types Endpoints", () => {
await userRepositoryFixture.deleteByEmail(teammate1.email);
await userRepositoryFixture.deleteByEmail(teammate2.email);
await userRepositoryFixture.deleteByEmail(falseTestUser.email);
// Explicitly delete all team event types before deleting the team to ensure proper cleanup
await eventTypesRepositoryFixture.deleteAllTeamEventTypes(team.id);
await eventTypesRepositoryFixture.deleteAllTeamEventTypes(falseTestTeam.id);
await teamsRepositoryFixture.delete(team.id);
await teamsRepositoryFixture.delete(falseTestTeam.id);
await organizationsRepositoryFixture.delete(org.id);
@@ -58,6 +58,14 @@ export class EventTypesRepositoryFixture {
return this.prismaWriteClient.eventType.delete({ where: { id: eventTypeId } });
}
async deleteAllTeamEventTypes(teamId: number) {
return this.prismaWriteClient.eventType.deleteMany({
where: {
teamId,
},
});
}
async findById(eventTypeId: EventType["id"]) {
return this.prismaReadClient.eventType.findUnique({ where: { id: eventTypeId } });
}