Skip to content

Mock useId so it can be reset before each tests #1484

Mock useId so it can be reset before each tests

Mock useId so it can be reset before each tests #1484

Triggered via pull request April 23, 2026 15:18
Status Success
Total duration 24m 28s
Artifacts 9

build-and-test.yaml

on: pull_request
Build Element Web
2m 26s
Build Element Web
Prepare Element Desktop  /  Prepare
41s
Prepare Element Desktop / Prepare
Matrix: playwright_ew
Downstream Playwright tests [element-modules]  /  Run Playwright end-to-end tests & upload html report
Downstream Playwright tests [element-modules] / Run Playwright end-to-end tests & upload html report
Matrix: Desktop Linux
Matrix: Desktop Windows
Waiting for pending jobs
Desktop macOS  /  Build macOS Universal
Desktop macOS / Build macOS Universal
Desktop macOS  /  ...  /  test
Desktop macOS / Test macOS Universal / test
end-to-end-tests
41s
end-to-end-tests
Fit to window
Zoom out
Zoom in

Annotations

5 errors, 1 warning, and 5 notices
[Chrome] › playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:185:13 › Room list › Room list › Shortcuts › should select the next unread room: apps/web/playwright/e2e/left-panel/room-list-panel/room-list.spec.ts#L200
1) [Chrome] › playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:185:13 › Room list › Room list › Shortcuts › should select the next unread room Error: expect(locator).toBeVisible() failed Locator: getByRole('heading', { name: '1 notification', level: 1 }) Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByRole('heading', { name: '1 notification', level: 1 }) 198 | await page.keyboard.press("Alt+Shift+ArrowDown"); 199 | > 200 | await expect(page.getByRole("heading", { name: "1 notification", level: 1 })).toBeVisible(); | ^ 201 | }); 202 | }); 203 | at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:200:95
[Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:144:9 › OIDC Native › with force_verification on › verify dialog cannot be dismissed @no-firefox @no-webkit @screenshot: apps/web/playwright/e2e/oidc/oidc-native.spec.ts#L173
2) [Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:144:9 › OIDC Native › with force_verification on › verify dialog cannot be dismissed @no-firefox @no-webkit @screenshot Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText('Confirm your digital identity') Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByText('Confirm your digital identity') 171 | // We should be being warned that we need to verify (but we can't) 172 | // richvdh: Again, Element takes several seconds to load on a dev instance > 173 | await expect(page.getByText("Confirm your digital identity")).toBeVisible({ timeout: 10000 }); | ^ 174 | 175 | // And there should be no way to close this prompt 176 | await expect(page.getByRole("button", { name: "Skip verification for now" })).not.toBeVisible(); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/oidc/oidc-native.spec.ts:173:75
[Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:144:9 › OIDC Native › with force_verification on › verify dialog cannot be dismissed @no-firefox @no-webkit @screenshot: apps/web/playwright/e2e/oidc/oidc-native.spec.ts#L173
2) [Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:144:9 › OIDC Native › with force_verification on › verify dialog cannot be dismissed @no-firefox @no-webkit @screenshot Error: expect(locator).toBeVisible() failed Locator: getByText('Confirm your digital identity') Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByText('Confirm your digital identity') 171 | // We should be being warned that we need to verify (but we can't) 172 | // richvdh: Again, Element takes several seconds to load on a dev instance > 173 | await expect(page.getByText("Confirm your digital identity")).toBeVisible({ timeout: 10000 }); | ^ 174 | 175 | // And there should be no way to close this prompt 176 | await expect(page.getByRole("button", { name: "Skip verification for now" })).not.toBeVisible(); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/oidc/oidc-native.spec.ts:173:75
[Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:82:5 › OIDC Native › it should log out the user & wipe data when logging out via MAS @no-firefox @no-webkit @screenshot: apps/web/playwright/e2e/oidc/oidc-native.spec.ts#L106
1) [Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:82:5 › OIDC Native › it should log out the user & wipe data when logging out via MAS @no-firefox @no-webkit @screenshot Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toHaveLength(expected) Expected length: 0 Received length: 21 Received array: ["react_sdk_session_lock_owner", "mx_local_settings", "mx_has_access_token", "mx_oidc_client_id", "mx_oidc_token_issuer", "must_verify_device", "mx_draft_cleanup", "mx_profile_displayname", "mx_device_id", "mx_has_refresh_token", …] 104 | 105 | const localStorageKeys = await page.evaluate(() => Object.keys(localStorage)); > 106 | expect(localStorageKeys).toHaveLength(0); | ^ 107 | }, 108 | ); 109 | at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/oidc/oidc-native.spec.ts:106:38
[Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:82:5 › OIDC Native › it should log out the user & wipe data when logging out via MAS @no-firefox @no-webkit @screenshot: apps/web/playwright/e2e/oidc/oidc-native.spec.ts#L106
1) [Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:82:5 › OIDC Native › it should log out the user & wipe data when logging out via MAS @no-firefox @no-webkit @screenshot Error: expect(received).toHaveLength(expected) Expected length: 0 Received length: 21 Received array: ["react_sdk_session_lock_owner", "mx_local_settings", "mx_has_access_token", "mx_oidc_client_id", "mx_oidc_token_issuer", "must_verify_device", "mx_draft_cleanup", "mx_profile_displayname", "mx_device_id", "mx_has_refresh_token", …] 104 | 105 | const localStorageKeys = await page.evaluate(() => Object.keys(localStorage)); > 106 | expect(localStorageKeys).toHaveLength(0); | ^ 107 | }, 108 | ); 109 | at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/oidc/oidc-native.spec.ts:106:38
Desktop Linux (static, amd64, false) / Build Linux amd64 SQLCipher static
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
🎭 Playwright Run Summary
1 skipped 6 passed (22.3s)
🎭 Playwright Run Summary
1 skipped 130 passed (10.6m)
🎭 Playwright Run Summary
1 flaky [Chrome] › playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:185:13 › Room list › Room list › Shortcuts › should select the next unread room 3 skipped 129 passed (11.7m)
🎭 Playwright Run Summary
135 passed (11.8m)
🎭 Playwright Run Summary
2 flaky [Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:82:5 › OIDC Native › it should log out the user & wipe data when logging out via MAS @no-firefox @no-webkit @screenshot [Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:144:9 › OIDC Native › with force_verification on › verify dialog cannot be dismissed @no-firefox @no-webkit @screenshot 1 skipped 128 passed (18.4m)

Artifacts

Produced during runtime
Name Size Digest
blob-report-Chrome-1
819 KB
sha256:f1d2777d75f402126bc09fdfe5e8938dea3e69f525de518f94cd7b2ce235845d
blob-report-Chrome-2
8.61 MB
sha256:fb04a5b0ebaef23f054357bce6314d0f3a1521556e3bd1603dccc6c148156172
blob-report-Chrome-3
1.54 MB
sha256:5d369e247cb5be6bd75f5bee582e322bebf49a984379fa4fdcde23b93166d880
blob-report-Chrome-4
15.5 MB
sha256:7953988fe5ad9659d1917e3e4ddb0f47163b25f1c1e592311406a4a5a8efce97
blob-report-linux-amd64-sqlcipher-static
48.7 KB
sha256:84ab8a19a20e0dabfda521222095d7aeab8c488c6472c91f96a2be1fc18792db
desktop-prepare
41.2 MB
sha256:8279e38c3720279d203bc98e9d89de1ae929abbf05497d0302ebb408a4e0d869
html-report
24.2 MB
sha256:cd92b8df6e3ae9d045c6329ff48a61ae3f7220220a2eb42e68688fa89baff718
linux-amd64-sqlcipher-static
283 MB
sha256:422a8a558b8c467299483147cb5c99b670fe24ba477d7d4a1956fba080f43b14
webapp
41.4 MB
sha256:b90b22999f1412ae90703d8dae93e5cabbf57b5628eadae116e8af34c493f4dd