From 8113b0c986c4eae5423d204df6437979aa5408e2 Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Thu, 12 Jun 2025 11:27:03 +0200 Subject: [PATCH] test: implement deleteAllRecordings and deleteAllRooms functions for cleanup in tests --- .../webcomponent/tests/e2e/core/room.test.ts | 11 ++++--- .../tests/e2e/recording-access.test.ts | 12 +++++++ .../tests/e2e/ui-feature-preferences.test.ts | 33 +++++++++++-------- .../tests/helpers/function-helpers.ts | 12 +++++++ 4 files changed, 50 insertions(+), 18 deletions(-) diff --git a/frontend/webcomponent/tests/e2e/core/room.test.ts b/frontend/webcomponent/tests/e2e/core/room.test.ts index 6c01e29..0c9a415 100644 --- a/frontend/webcomponent/tests/e2e/core/room.test.ts +++ b/frontend/webcomponent/tests/e2e/core/room.test.ts @@ -4,6 +4,8 @@ import { PNG } from 'pngjs'; import pixelmatch from 'pixelmatch'; import { applyVirtualBackground, + deleteAllRecordings, + deleteAllRooms, interactWithElementInIframe, joinRoomAs, leaveRoom, @@ -58,14 +60,13 @@ test.describe('Room Functionality Tests', () => { }); test.afterAll(async ({ browser }) => { - // Cleanup: delete the test room const tempContext = await browser.newContext(); const tempPage = await tempContext.newPage(); - await tempPage.goto(testAppUrl); - await tempPage.waitForSelector('#delete-all-rooms'); - await tempPage.click('#delete-all-rooms'); - await tempPage.close(); + await deleteAllRooms(tempPage); + await deleteAllRecordings(tempPage); + await tempContext.close(); + await tempPage.close(); }); // ========================================== diff --git a/frontend/webcomponent/tests/e2e/recording-access.test.ts b/frontend/webcomponent/tests/e2e/recording-access.test.ts index c9a5ba8..b695243 100644 --- a/frontend/webcomponent/tests/e2e/recording-access.test.ts +++ b/frontend/webcomponent/tests/e2e/recording-access.test.ts @@ -2,6 +2,8 @@ import { test, expect } from '@playwright/test'; import { closeMoreOptionsMenu, createTestRoom, + deleteAllRecordings, + deleteAllRooms, deleteTestRoom, interactWithElementInIframe, joinRoomAs, @@ -62,6 +64,16 @@ test.describe('Recording Access Tests', () => { } }); + test.afterAll(async ({ browser }) => { + const tempContext = await browser.newContext(); + const tempPage = await tempContext.newPage(); + await deleteAllRooms(tempPage); + await deleteAllRecordings(tempPage); + + await tempContext.close(); + await tempPage.close(); + }); + test('should moderator not be able to access recording when access level is set to admin', async ({ page }) => { await updateRoomPreferences( roomId, diff --git a/frontend/webcomponent/tests/e2e/ui-feature-preferences.test.ts b/frontend/webcomponent/tests/e2e/ui-feature-preferences.test.ts index 985f53d..194b0be 100644 --- a/frontend/webcomponent/tests/e2e/ui-feature-preferences.test.ts +++ b/frontend/webcomponent/tests/e2e/ui-feature-preferences.test.ts @@ -3,11 +3,14 @@ import { applyVirtualBackground, closeMoreOptionsMenu, createTestRoom, + deleteAllRecordings, + deleteAllRooms, deleteTestRoom, interactWithElementInIframe, isVirtualBackgroundApplied, joinRoomAs, leaveRoom, + loginAsAdmin, openMoreOptionsMenu, prepareForJoiningRoom, updateRoomPreferences, @@ -23,6 +26,7 @@ test.describe('UI Feature Preferences Tests', () => { const testRoomPrefix = 'ui-feature-testing-room'; let participantName: string; let roomId: string; + let adminCookie: string; // ========================================== // SETUP & TEARDOWN @@ -30,7 +34,7 @@ test.describe('UI Feature Preferences Tests', () => { test.beforeAll(async () => { // Login as admin to get authentication cookie - // adminCookie = await loginAsAdmin(); + adminCookie = await loginAsAdmin(); // Create test room }); @@ -48,14 +52,13 @@ test.describe('UI Feature Preferences Tests', () => { }); test.afterAll(async ({ browser }) => { - // Cleanup: delete the test room const tempContext = await browser.newContext(); const tempPage = await tempContext.newPage(); - await tempPage.goto(testAppUrl); - await tempPage.waitForSelector('#delete-all-rooms'); - await tempPage.click('#delete-all-rooms'); - await tempPage.close(); + await deleteAllRooms(tempPage); + await deleteAllRecordings(tempPage); + await tempContext.close(); + await tempPage.close(); }); // ========================================== @@ -277,14 +280,18 @@ test.describe('UI Feature Preferences Tests', () => { await waitForVirtualBackgroundToApply(page); // Now disable virtual backgrounds - const { preferences: updatedPreferences } = await updateRoomPreferences(roomId, { - chatPreferences: { enabled: true }, - recordingPreferences: { - enabled: true, - allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_PUBLISHER + const { preferences: updatedPreferences } = await updateRoomPreferences( + roomId, + { + chatPreferences: { enabled: true }, + recordingPreferences: { + enabled: true, + allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_PUBLISHER + }, + virtualBackgroundPreferences: { enabled: false } }, - virtualBackgroundPreferences: { enabled: false } - }); + adminCookie + ); expect(updatedPreferences.virtualBackgroundPreferences.enabled).toBe(false); await leaveRoom(page); diff --git a/frontend/webcomponent/tests/helpers/function-helpers.ts b/frontend/webcomponent/tests/helpers/function-helpers.ts index 4939dfb..75a1f1b 100644 --- a/frontend/webcomponent/tests/helpers/function-helpers.ts +++ b/frontend/webcomponent/tests/helpers/function-helpers.ts @@ -186,6 +186,18 @@ export const deleteTestRoom = async (roomIdToDelete: string) => { }); }; +export const deleteAllRecordings = async (page: Page) => { + await page.goto('http://localhost:5080/'); + await page.waitForSelector('#delete-all-recordings-btn', { state: 'visible' }); + await page.click('#delete-all-recordings-btn'); +}; + +export const deleteAllRooms = async (page: Page) => { + await page.goto('http://localhost:5080/'); + await page.waitForSelector('#delete-all-rooms-btn', { state: 'visible' }); + await page.click('#delete-all-rooms-btn'); +}; + export const startStopRecording = async (page: Page, action: 'start' | 'stop') => { const buttonSelector = action === 'start' ? '#recording-btn' : '#stop-recording-btn'; if (action === 'start') {