diff --git a/playwright/e2e/crypto/backups-mas.spec.ts b/playwright/e2e/crypto/backups-mas.spec.ts index 614bde5064..1838f9e234 100644 --- a/playwright/e2e/crypto/backups-mas.spec.ts +++ b/playwright/e2e/crypto/backups-mas.spec.ts @@ -19,19 +19,19 @@ test.use(masHomeserver); test.describe("Encryption state after registration", () => { test.skip(isDendrite, "does not yet support MAS"); - test("Key backup is enabled by default", async ({ page, mailhogClient, app }) => { + test("Key backup is enabled by default", async ({ page, mailhogClient, app }, testInfo) => { await page.goto("/#/login"); await page.getByRole("button", { name: "Continue" }).click(); - await registerAccountMas(page, mailhogClient, "alice", "alice@email.com", "Pa$sW0rD!"); + await registerAccountMas(page, mailhogClient, `alice_${testInfo.testId}`, "alice@email.com", "Pa$sW0rD!"); await app.settings.openUserSettings("Security & Privacy"); await expect(page.getByText("This session is backing up your keys.")).toBeVisible(); }); - test("user is prompted to set up recovery", async ({ page, mailhogClient, app }) => { + test("user is prompted to set up recovery", async ({ page, mailhogClient, app }, testInfo) => { await page.goto("/#/login"); await page.getByRole("button", { name: "Continue" }).click(); - await registerAccountMas(page, mailhogClient, "alice", "alice@email.com", "Pa$sW0rD!"); + await registerAccountMas(page, mailhogClient, `alice_${testInfo.testId}`, "alice@email.com", "Pa$sW0rD!"); await page.getByRole("button", { name: "Add room" }).click(); await page.getByRole("menuitem", { name: "New room" }).click(); @@ -45,8 +45,13 @@ test.describe("Encryption state after registration", () => { test.describe("Key backup reset from elsewhere", () => { test.skip(isDendrite, "does not yet support MAS"); - test("Key backup is disabled when reset from elsewhere", async ({ page, mailhogClient, request, homeserver }) => { - const testUsername = "alice"; + test("Key backup is disabled when reset from elsewhere", async ({ + page, + mailhogClient, + request, + homeserver, + }, testInfo) => { + const testUsername = `alice_${testInfo.testId}`; const testPassword = "Pa$sW0rD!"; // there's a delay before keys are uploaded so the error doesn't appear immediately: use a fake diff --git a/playwright/e2e/login/login-sso.spec.ts b/playwright/e2e/login/login-sso.spec.ts index fbe190b935..22428af502 100644 --- a/playwright/e2e/login/login-sso.spec.ts +++ b/playwright/e2e/login/login-sso.spec.ts @@ -17,13 +17,13 @@ test.use(legacyOAuthHomeserver); test.describe("SSO login", () => { test.skip(isDendrite, "does not yet support SSO"); - test("logs in with SSO and lands on the home screen", async ({ page, homeserver }) => { + test("logs in with SSO and lands on the home screen", async ({ page, homeserver }, testInfo) => { // If this test fails with a screen showing "Timeout connecting to remote server", it is most likely due to // your firewall settings: Synapse is unable to reach the OIDC server. // // If you are using ufw, try something like: // sudo ufw allow in on docker0 // - await doTokenRegistration(page, homeserver); + await doTokenRegistration(page, homeserver, testInfo); }); }); diff --git a/playwright/e2e/login/soft_logout_oauth.spec.ts b/playwright/e2e/login/soft_logout_oauth.spec.ts index 19b1fc0124..f6814d0cf4 100644 --- a/playwright/e2e/login/soft_logout_oauth.spec.ts +++ b/playwright/e2e/login/soft_logout_oauth.spec.ts @@ -26,8 +26,8 @@ test.use({ test.use(legacyOAuthHomeserver); test.describe("Soft logout with SSO user", () => { test.use({ - user: async ({ page, homeserver }, use) => { - const user = await doTokenRegistration(page, homeserver); + user: async ({ page, homeserver }, use, testInfo) => { + const user = await doTokenRegistration(page, homeserver, testInfo); // Eventually, we should end up at the home screen. await expect(page).toHaveURL(/\/#\/home$/); diff --git a/playwright/e2e/login/utils.ts b/playwright/e2e/login/utils.ts index cc98d8819a..e7121159f0 100644 --- a/playwright/e2e/login/utils.ts +++ b/playwright/e2e/login/utils.ts @@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com Please see LICENSE files in the repository root for full details. */ -import { Page, expect } from "@playwright/test"; +import { Page, expect, TestInfo } from "@playwright/test"; import { Credentials, HomeserverInstance } from "../../plugins/homeserver"; @@ -15,6 +15,7 @@ import { Credentials, HomeserverInstance } from "../../plugins/homeserver"; export async function doTokenRegistration( page: Page, homeserver: HomeserverInstance, + testInfo: TestInfo, ): Promise { await page.goto("/#/login"); @@ -35,7 +36,7 @@ export async function doTokenRegistration( // Synapse prompts us to pick a user ID await expect(page.getByRole("heading", { name: "Create your account" })).toBeVisible(); - await page.getByRole("textbox", { name: "Username (required)" }).fill("alice"); + await page.getByRole("textbox", { name: "Username (required)" }).fill(`alice_${testInfo.testId}`); // wait for username validation to start, and complete await expect(page.locator("#field-username-output")).toHaveText(""); diff --git a/playwright/e2e/oidc/oidc-native.spec.ts b/playwright/e2e/oidc/oidc-native.spec.ts index 63cf0a5b59..eb268c5ccc 100644 --- a/playwright/e2e/oidc/oidc-native.spec.ts +++ b/playwright/e2e/oidc/oidc-native.spec.ts @@ -17,7 +17,13 @@ test.describe("OIDC Native", { tag: ["@no-firefox", "@no-webkit"] }, () => { test.skip(isDendrite, "does not yet support MAS"); test.slow(); // trace recording takes a while here - test("can register the oauth2 client and an account", async ({ context, page, homeserver, mailhogClient, mas }) => { + test("can register the oauth2 client and an account", async ({ + context, + page, + homeserver, + mailhogClient, + mas, + }, testInfo) => { const tokenUri = `${mas.baseUrl}/oauth2/token`; const tokenApiPromise = page.waitForRequest( (request) => request.url() === tokenUri && request.postDataJSON()["grant_type"] === "authorization_code", @@ -25,7 +31,7 @@ test.describe("OIDC Native", { tag: ["@no-firefox", "@no-webkit"] }, () => { await page.goto("/#/login"); await page.getByRole("button", { name: "Continue" }).click(); - await registerAccountMas(page, mailhogClient, "alice", "alice@email.com", "Pa$sW0rD!"); + await registerAccountMas(page, mailhogClient, `alice_${testInfo.testId}`, "alice@email.com", "Pa$sW0rD!"); // Eventually, we should end up at the home screen. await expect(page).toHaveURL(/\/#\/home$/, { timeout: 10000 });