diff --git a/playwright/widget/test-helpers.ts b/playwright/widget/test-helpers.ts index 630681bd..38d34304 100644 --- a/playwright/widget/test-helpers.ts +++ b/playwright/widget/test-helpers.ts @@ -34,6 +34,9 @@ export class TestHelpers { ).toBeVisible(); await page.getByRole("menuitem", { name: "Element Call" }).click(); + + // TODO: Remove as soon as web merges https://github.com/element-hq/element-web/pull/32755 + await this.dismissFileDialogPermissionIfNeeded(page); } public static async joinCallFromLobby(page: Page): Promise { @@ -60,6 +63,9 @@ export class TestHelpers { await expect(page.getByText(label)).toBeVisible(); await expect(page.getByRole("button", { name: "Join" })).toBeVisible(); await page.getByRole("button", { name: "Join" }).click(); + + // TODO: Remove as soon as web merges https://github.com/element-hq/element-web/pull/32755 + await this.dismissFileDialogPermissionIfNeeded(page); } /** @@ -235,9 +241,30 @@ export class TestHelpers { ): Promise { await page.getByRole("button", { name: "Video call" }).click(); await page.getByRole("menuitem", { name: "Element Call" }).click(); + + // TODO: Remove as soon as web merges https://github.com/element-hq/element-web/pull/32755 + await this.dismissFileDialogPermissionIfNeeded(page); + await TestHelpers.setEmbeddedElementCallRtcMode(page, mode); await page.getByRole("button", { name: "Close lobby" }).click(); } + + // TODO: Remove as soon as web merges https://github.com/element-hq/element-web/pull/32755 + private static async dismissFileDialogPermissionIfNeeded( + page: Page, + ): Promise { + const dialogHeading = page.getByRole("heading", { + name: "Approve widget permissions", + }); + + try { + await expect(dialogHeading).toBeVisible({ timeout: 3000 }); + await page.getByRole("button", { name: "Approve" }).click(); + } catch { + // Dialog did not appear, that's fine + } + } + /** * Goes to the settings to set the RTC mode. * then closes the settings modal.