test: enhance leaveRoom function to optionally wait for meeting to end

This commit is contained in:
Carlos Santos 2025-11-11 20:40:53 +01:00
parent d377b016e2
commit 27094be54e
3 changed files with 11 additions and 9 deletions

View File

@ -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();
}

View File

@ -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

View File

@ -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) => {