From 27094be54effebcc310ac59855e930afdbb161ca Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Tue, 11 Nov 2025 20:40:53 +0100 Subject: [PATCH] test: enhance leaveRoom function to optionally wait for meeting to end --- .../webcomponent/tests/e2e/recording-access.test.ts | 2 +- .../webcomponent/tests/e2e/ui-feature-config.test.ts | 12 ++++++------ .../webcomponent/tests/helpers/function-helpers.ts | 6 ++++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/meet-ce/frontend/webcomponent/tests/e2e/recording-access.test.ts b/meet-ce/frontend/webcomponent/tests/e2e/recording-access.test.ts index 82808649..5c9b1f98 100644 --- a/meet-ce/frontend/webcomponent/tests/e2e/recording-access.test.ts +++ b/meet-ce/frontend/webcomponent/tests/e2e/recording-access.test.ts @@ -50,7 +50,7 @@ test.describe('Recording Access Tests', () => { await startStopRecording(tempPage, 'stop'); recordingCreated = true; - await leaveRoom(tempPage, 'moderator'); + await leaveRoom(tempPage, 'moderator', true); await tempContext.close(); await tempPage.close(); } diff --git a/meet-ce/frontend/webcomponent/tests/e2e/ui-feature-config.test.ts b/meet-ce/frontend/webcomponent/tests/e2e/ui-feature-config.test.ts index 544f7490..96e196e7 100644 --- a/meet-ce/frontend/webcomponent/tests/e2e/ui-feature-config.test.ts +++ b/meet-ce/frontend/webcomponent/tests/e2e/ui-feature-config.test.ts @@ -63,7 +63,7 @@ test.describe('UI Feature Config Tests', () => { test.describe('Chat Feature', () => { test.afterEach(async ({ page }) => { try { - await leaveRoom(page); + await leaveRoom(page, 'speaker', true); } catch (error) {} }); @@ -138,7 +138,7 @@ test.describe('UI Feature Config Tests', () => { await interactWithElementInIframe(page, '#activities-panel-btn', { action: 'click' }); await page.waitForTimeout(500); await waitForElementInIframe(page, 'ov-recording-activity', { state: 'visible' }); - await leaveRoom(page, 'moderator'); + await leaveRoom(page, 'moderator', true); }); test('should not show recording button for speaker', async ({ page }) => { @@ -157,7 +157,7 @@ test.describe('UI Feature Config Tests', () => { // Check that recording button is not visible for speaker const recordingButton = await waitForElementInIframe(page, '#recording-btn', { state: 'hidden' }); await expect(recordingButton).toBeHidden(); - await leaveRoom(page); + await leaveRoom(page, 'speaker', true); }); test('should not show recording button for moderators when recording is disabled', async ({ page }) => { @@ -182,7 +182,7 @@ test.describe('UI Feature Config Tests', () => { await waitForElementInIframe(page, '#activities-panel-btn', { state: 'hidden' }); - await leaveRoom(page, 'moderator'); + await leaveRoom(page, 'moderator', true); }); }); @@ -193,7 +193,7 @@ test.describe('UI Feature Config Tests', () => { test.describe('Virtual Background Feature', () => { test.afterEach(async ({ page }) => { try { - await leaveRoom(page); + await leaveRoom(page, 'speaker', true); } catch (error) {} }); @@ -263,7 +263,7 @@ test.describe('UI Feature Config Tests', () => { await applyVirtualBackground(page, '2'); await waitForVirtualBackgroundToApply(page); - await leaveRoom(page); + await leaveRoom(page, 'speaker', true); await page.reload(); // Now disable virtual backgrounds diff --git a/meet-ce/frontend/webcomponent/tests/helpers/function-helpers.ts b/meet-ce/frontend/webcomponent/tests/helpers/function-helpers.ts index 0dbd295d..9ceb00ca 100644 --- a/meet-ce/frontend/webcomponent/tests/helpers/function-helpers.ts +++ b/meet-ce/frontend/webcomponent/tests/helpers/function-helpers.ts @@ -290,7 +290,7 @@ export const viewRecordingsAs = async (role: 'moderator' | 'speaker', page: Page await interactWithElementInIframe(page, '#view-recordings-btn', { action: 'click' }); }; -export const leaveRoom = async (page: Page, role: 'moderator' | 'speaker' = 'speaker') => { +export const leaveRoom = async (page: Page, role: 'moderator' | 'speaker' = 'speaker', waitForMeetingEnded = false) => { await interactWithElementInIframe(page, '#leave-btn', { action: 'click' }); if (role === 'moderator') { @@ -299,7 +299,9 @@ export const leaveRoom = async (page: Page, role: 'moderator' | 'speaker' = 'spe } await page.waitForSelector('.event-left'); - await page.waitForSelector('.webhook-meetingEnded', { timeout: 10000 }); + if (waitForMeetingEnded) { + await page.waitForSelector('.webhook-meetingEnded', { timeout: 10000 }); + } }; export const startScreenSharing = async (page: Page) => {