Skip to content

Shared Components Restructure, Cherry Picked | Restructure Room-List Tree #38

Shared Components Restructure, Cherry Picked | Restructure Room-List Tree

Shared Components Restructure, Cherry Picked | Restructure Room-List Tree #38

Triggered via pull request March 31, 2026 13:43
Status Success
Total duration 1h 29m 44s
Artifacts 19

build-and-test.yaml

on: pull_request
Build Element Web
2m 10s
Build Element Web
Prepare Element Desktop  /  Prepare
49s
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
Desktop macOS  /  Build macOS Universal
16m 7s
Desktop macOS / Build macOS Universal
Desktop macOS  /  ...  /  Test macos
3m 44s
Desktop macOS / Test macOS Universal / Test macos
end-to-end-tests
40s
end-to-end-tests
Fit to window
Zoom out
Zoom in

Annotations

8 errors, 5 warnings, and 10 notices
[Chrome] › playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:320:9 › Room list › Avatar decoration › should be a video room @screenshot: apps/web/playwright/e2e/left-panel/room-list-panel/room-list.spec.ts#L336
2) [Chrome] › playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:320:9 › Room list › Avatar decoration › should be a video room @screenshot Error: expect(locator).toHaveScreenshot(expected) failed Locator: getByTestId('room-list').getByRole('option', { name: 'video room' }) 283 pixels (ratio 0.02 of all image pixels) are different. Snapshot: room-list-item-video.png Call log: - Expect "toHaveScreenshot(room-list-item-video.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for getByTestId('room-list').getByRole('option', { name: 'video room' }) - locator resolved to <button type="button" tabindex="-1" role="option" aria-setsize="1" aria-posinset="1" data-state="closed" aria-haspopup="menu" aria-selected="false" aria-label="Open room video room" class="_flex_4dswl_9 _roomListItem_rtaba_8 mx_RoomListItemView _firstItem_rtaba_123 _lastItem_rtaba_127">…</button> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 283 pixels (ratio 0.02 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for getByTestId('room-list').getByRole('option', { name: 'video room' }) - locator resolved to <button type="button" tabindex="-1" role="option" aria-setsize="1" aria-posinset="1" data-state="closed" aria-haspopup="menu" aria-selected="false" aria-label="Open room video room" class="_flex_4dswl_9 _roomListItem_rtaba_8 mx_RoomListItemView _firstItem_rtaba_123 _lastItem_rtaba_127">…</button> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 283 pixels (ratio 0.02 of all image pixels) are different. 334 | 335 | await expect(videoRoom).toBeVisible(); > 336 | await expect(videoRoom).toMatchScreenshot("room-list-item-video.png"); | ^ 337 | }); 338 | }); 339 | at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:336:37
[Chrome] › playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:192: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#L207
1) [Chrome] › playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:192: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 }) 205 | await page.keyboard.press("Alt+Shift+ArrowDown"); 206 | > 207 | await expect(page.getByRole("heading", { name: "1 notification", level: 1 })).toBeVisible(); | ^ 208 | }); 209 | }); 210 | at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:207: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#L169
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: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('Confirm your digital identity') 167 | 168 | // We should be being warned that we need to verify (but we can't) > 169 | await expect(page.getByText("Confirm your digital identity")).toBeVisible(); | ^ 170 | 171 | // And there should be no way to close this prompt 172 | 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:169: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 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/settings/room-settings/room-security-tab.spec.ts:81:5 › Roles & Permissions room settings tab › should disallow changing from public to private if the user cannot alter history @screenshot: apps/web/playwright/e2e/settings/room-settings/room-security-tab.spec.ts#L103
1) [Chrome] › playwright/e2e/settings/room-settings/room-security-tab.spec.ts:81:5 › Roles & Permissions room settings tab › should disallow changing from public to private if the user cannot alter history @screenshot Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.blur: Test timeout of 30000ms exceeded. Call log: - waiting for locator('.mx_Dialog').filter({ has: locator('.mx_RoomSettingsDialog') }).getByRole('spinbutton', { name: '@user_6496a26110e4309860ce-e6b187015ed0865317ce:localhost' }) 101 | const ourPl = settings.getByRole("spinbutton", { name: user.userId }); 102 | await ourPl.fill("80"); > 103 | await ourPl.blur(); // Shows a warning on | ^ 104 | 105 | // Accept the de-op 106 | await page.getByRole("button", { name: "Continue" }).click(); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/settings/room-settings/room-security-tab.spec.ts:103:25
[Chrome] › playwright/e2e/settings/room-settings/room-security-tab.spec.ts:81:5 › Roles & Permissions room settings tab › should disallow changing from public to private if the user cannot alter history @screenshot: apps/web/playwright/e2e/settings/room-settings/room-security-tab.spec.ts#L0
1) [Chrome] › playwright/e2e/settings/room-settings/room-security-tab.spec.ts:81:5 › Roles & Permissions room settings tab › should disallow changing from public to private if the user cannot alter history @screenshot Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded.
[Chrome] › playwright/e2e/settings/room-settings/room-security-tab.spec.ts:81:5 › Roles & Permissions room settings tab › should disallow changing from public to private if the user cannot alter history @screenshot: apps/web/playwright/e2e/settings/room-settings/room-security-tab.spec.ts#L103
1) [Chrome] › playwright/e2e/settings/room-settings/room-security-tab.spec.ts:81:5 › Roles & Permissions room settings tab › should disallow changing from public to private if the user cannot alter history @screenshot Error: locator.blur: Test timeout of 30000ms exceeded. Call log: - waiting for locator('.mx_Dialog').filter({ has: locator('.mx_RoomSettingsDialog') }).getByRole('spinbutton', { name: '@user_6496a26110e4309860ce-e6b187015ed0865317ce:localhost' }) - locator resolved to <input max="100" value="100" type="number" id="mx_Field_5" label="@user_6496a26110e4309860ce-e6b187015ed0865317ce:localhost" placeholder="@user_6496a26110e4309860ce-e6b187015ed0865317ce:localhost"/> - element was detached from the DOM, retrying 101 | const ourPl = settings.getByRole("spinbutton", { name: user.userId }); 102 | await ourPl.fill("80"); > 103 | await ourPl.blur(); // Shows a warning on | ^ 104 | 105 | // Accept the de-op 106 | await page.getByRole("button", { name: "Continue" }).click(); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/settings/room-settings/room-security-tab.spec.ts:103:25
[Chrome] › playwright/e2e/settings/room-settings/room-security-tab.spec.ts:81:5 › Roles & Permissions room settings tab › should disallow changing from public to private if the user cannot alter history @screenshot: apps/web/playwright/e2e/settings/room-settings/room-security-tab.spec.ts#L0
1) [Chrome] › playwright/e2e/settings/room-settings/room-security-tab.spec.ts:81:5 › Roles & Permissions room settings tab › should disallow changing from public to private if the user cannot alter history @screenshot Test timeout of 30000ms exceeded.
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, tj-actions/changed-files@823fcebdb31bb35fdf2229d9f769b400309430d0. 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/
Desktop Linux (static, arm64, false) / Build Linux arm64 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, tj-actions/changed-files@823fcebdb31bb35fdf2229d9f769b400309430d0. 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/
Desktop Windows (x64) / Build Windows x64
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756, 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/
Desktop Windows (ia32) / Build Windows ia32
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756, 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/
Desktop Windows (arm64) / Build Windows arm64
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756, 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
2 flaky [Chrome] › playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:192:13 › Room list › Room list › Shortcuts › should select the next unread room [Chrome] › playwright/e2e/left-panel/room-list-panel/room-list.spec.ts:320:9 › Room list › Avatar decoration › should be a video room @screenshot 3 skipped 119 passed (10.7m)
🎭 Playwright Run Summary
1 skipped 6 passed (21.6s)
🎭 Playwright Run Summary
137 passed (12.0m)
🎭 Playwright Run Summary
1 skipped 6 passed (26.2s)
🎭 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 115 passed (14.7m)
🎭 Playwright Run Summary
1 skipped 6 passed (22.1s)
🎭 Playwright Run Summary
1 flaky [Chrome] › playwright/e2e/settings/room-settings/room-security-tab.spec.ts:81:5 › Roles & Permissions room settings tab › should disallow changing from public to private if the user cannot alter history @screenshot 2 skipped 129 passed (13.8m)
🎭 Playwright Run Summary
1 skipped 6 passed (31.5s)
🎭 Playwright Run Summary
1 skipped 6 passed (25.7s)
🎭 Playwright Run Summary
1 skipped 6 passed (33.3s)

Artifacts

Produced during runtime
Name Size Digest
blob-report-Chrome-1 Expired
812 KB
sha256:290541c43aaffd9d928da4a60d4a2246a6e0b387fc55a54727e12b906118410d
blob-report-Chrome-2 Expired
12.7 MB
sha256:ac41a23bd5179d5ff86442b6cdfe9b939ed03f7aeaac2ece6afd9d2482dbfd95
blob-report-Chrome-3 Expired
6.45 MB
sha256:dfb7dd1aac33dd700000a2a5c4149f52cbafdb83982d4e88ab5d7609b09a150d
blob-report-Chrome-4 Expired
12.2 MB
sha256:c61129dac993adfd903aac41d7ef1c1c1c58848be7187425568fc23a9c82ca4d
blob-report-linux-amd64-sqlcipher-static Expired
36.6 KB
sha256:2890224d85020b1e8c4a2fc55f09999278492d74d0801a436660bef4ee5e8d11
blob-report-linux-arm64-sqlcipher-static Expired
36.4 KB
sha256:17cd61d2bb6ad162453ca79023ecdfba9c66fc5e0633b8f7ece240bdcad7f0e1
blob-report-macos Expired
33.7 KB
sha256:ec2789c84b757e3aad63199d67eb00058bf0978f479682afaf41685a10705968
blob-report-win-arm64 Expired
9.55 KB
sha256:2d069b57ca7cb3a8a48f816a05ae0053ef9048ed5f332a657b8dd116f2fba900
blob-report-win-ia32 Expired
33.8 KB
sha256:01a65128b07464fac7e4006d6ea42760cde7bcfd59b4723b466c0696d1b1a1c4
blob-report-win-x64 Expired
35.7 KB
sha256:405923a8f9319aec3310fa7dee6cbcff8d0777151f8cf5793c535bd11e95638b
desktop-prepare Expired
41 MB
sha256:c55e2548b99be9ad285043044c07a51c61d745516a2171213d4874d85164f56f
html-report Expired
30.6 MB
sha256:fd4798a376d35809d4dca41143880cecd397c57cec0ecb458325b6aa452f161f
linux-amd64-sqlcipher-static Expired
287 MB
sha256:72da2a5c2994321f2ca3cd114586671b73f435cba55c0c24a132f739f2b936cd
linux-arm64-sqlcipher-static Expired
282 MB
sha256:9e5eb1c610ee4ef40c787de340d4e24a449c5bb574ade680d735c942cc79385d
macos Expired
509 MB
sha256:8c016691d502efde088549b9824dc880412ef525f1360e4eae33eee739771d5c
webapp Expired
41.3 MB
sha256:d4ce026c87c464809afc3eee24b12a61f7e4b97642e14b50c69fe9059066c26c
win-arm64 Expired
698 MB
sha256:e9b3a08be70fa1834d351d9bb82e6baf68f04b296489886c8392e87cf1412a3b
win-ia32 Expired
636 MB
sha256:5c32e2d12dd53264aafc3c520dda5a57d63f57fa3d4e8f6231b58dc9c90b0938
win-x64 Expired
710 MB
sha256:1dcc5cb065c362f91abf633bf9a6b1a703033526c4344266466760bffb6fd6dc