Phase 2 Refactor MImageBody to MVVM and remove legacy component #1501
build-and-test.yaml
on: pull_request
Build Element Web
2m 14s
Matrix: playwright_ew
Downstream Playwright tests [element-modules]
/
Run Playwright end-to-end tests & upload html report
Matrix: Desktop Linux
Matrix: Desktop Windows
Waiting for pending jobs
end-to-end-tests
47s
Annotations
11 errors, 2 warnings, and 5 notices
|
[Chrome] › playwright/e2e/sliding-sync/sliding-sync.spec.ts:225:5 › Sliding Sync › should show and be able to accept/reject/rescind invites:
apps/web/playwright/e2e/sliding-sync/sliding-sync.spec.ts#L41
1) [Chrome] › playwright/e2e/sliding-sync/sliding-sync.spec.ts:225:5 › Sliding Sync › should show and be able to accept/reject/rescind invites
Error: expect(locator).toHaveText(expected) failed
Locator: getByTestId('room-list').getByTestId('room-name')
Timeout: 5000ms
- Expected - 1
+ Received + 1
Array [
- "Room to Rescind",
"Room to Reject",
+ "Room to Rescind",
]
Call log:
- Expect "toHaveText" with timeout 5000ms
- waiting for getByTestId('room-list').getByTestId('room-name')
3 × locator resolved to 3 elements
6 × locator resolved to 2 elements
39 | test.describe("Sliding Sync", () => {
40 | const checkOrder = async (wantOrder: string[], page: Page) => {
> 41 | await expect(page.getByTestId("room-list").getByTestId("room-name")).toHaveText(wantOrder);
| ^
42 | };
43 |
44 | const bumpRoom = async (roomId: string, app: ElementAppPage) => {
at checkOrder (/home/runner/work/element-web/element-web/apps/web/playwright/e2e/sliding-sync/sliding-sync.spec.ts:41:78)
at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/sliding-sync/sliding-sync.spec.ts:259:15
|
|
Run Tests [Chrome] 2/4
Process completed with exit code 1.
|
|
[Chrome] › playwright/e2e/right-panel/file-panel.spec.ts:55:9 › FilePanel › render › should list tiles on the panel @no-firefox @no-webkit @screenshot:
apps/web/playwright/e2e/right-panel/file-panel.spec.ts#L97
2) [Chrome] › playwright/e2e/right-panel/file-panel.spec.ts:55:9 › FilePanel › render › should list tiles on the panel @no-firefox @no-webkit @screenshot
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeVisible() failed
Locator: locator('.mx_FilePanel').locator('.mx_RoomView_MessageList').locator('.mx_EventTile_mediaLine.mx_EventTile_image .mx_MImageBody').locator('img[class=\'mx_MImageBody_thumbnail\']')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for locator('.mx_FilePanel').locator('.mx_RoomView_MessageList').locator('.mx_EventTile_mediaLine.mx_EventTile_image .mx_MImageBody').locator('img[class=\'mx_MImageBody_thumbnail\']')
95 | const image = filePanelMessageList.locator(".mx_EventTile_mediaLine.mx_EventTile_image .mx_MImageBody");
96 | // Assert that the image is specified as thumbnail and has the alt string
> 97 | await expect(image.locator("img[class='mx_MImageBody_thumbnail']")).toBeVisible();
| ^
98 | await expect(image.locator("img[alt='riot.png']")).toBeVisible();
99 |
100 | // Detect the audio file
at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/right-panel/file-panel.spec.ts:97:81
|
|
[Chrome] › playwright/e2e/right-panel/file-panel.spec.ts:55:9 › FilePanel › render › should list tiles on the panel @no-firefox @no-webkit @screenshot:
apps/web/playwright/e2e/right-panel/file-panel.spec.ts#L97
2) [Chrome] › playwright/e2e/right-panel/file-panel.spec.ts:55:9 › FilePanel › render › should list tiles on the panel @no-firefox @no-webkit @screenshot
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeVisible() failed
Locator: locator('.mx_FilePanel').locator('.mx_RoomView_MessageList').locator('.mx_EventTile_mediaLine.mx_EventTile_image .mx_MImageBody').locator('img[class=\'mx_MImageBody_thumbnail\']')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for locator('.mx_FilePanel').locator('.mx_RoomView_MessageList').locator('.mx_EventTile_mediaLine.mx_EventTile_image .mx_MImageBody').locator('img[class=\'mx_MImageBody_thumbnail\']')
95 | const image = filePanelMessageList.locator(".mx_EventTile_mediaLine.mx_EventTile_image .mx_MImageBody");
96 | // Assert that the image is specified as thumbnail and has the alt string
> 97 | await expect(image.locator("img[class='mx_MImageBody_thumbnail']")).toBeVisible();
| ^
98 | await expect(image.locator("img[alt='riot.png']")).toBeVisible();
99 |
100 | // Detect the audio file
at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/right-panel/file-panel.spec.ts:97:81
|
|
[Chrome] › playwright/e2e/right-panel/file-panel.spec.ts:55:9 › FilePanel › render › should list tiles on the panel @no-firefox @no-webkit @screenshot:
apps/web/playwright/e2e/right-panel/file-panel.spec.ts#L97
2) [Chrome] › playwright/e2e/right-panel/file-panel.spec.ts:55:9 › FilePanel › render › should list tiles on the panel @no-firefox @no-webkit @screenshot
Error: expect(locator).toBeVisible() failed
Locator: locator('.mx_FilePanel').locator('.mx_RoomView_MessageList').locator('.mx_EventTile_mediaLine.mx_EventTile_image .mx_MImageBody').locator('img[class=\'mx_MImageBody_thumbnail\']')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for locator('.mx_FilePanel').locator('.mx_RoomView_MessageList').locator('.mx_EventTile_mediaLine.mx_EventTile_image .mx_MImageBody').locator('img[class=\'mx_MImageBody_thumbnail\']')
95 | const image = filePanelMessageList.locator(".mx_EventTile_mediaLine.mx_EventTile_image .mx_MImageBody");
96 | // Assert that the image is specified as thumbnail and has the alt string
> 97 | await expect(image.locator("img[class='mx_MImageBody_thumbnail']")).toBeVisible();
| ^
98 | await expect(image.locator("img[alt='riot.png']")).toBeVisible();
99 |
100 | // Detect the audio file
at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/right-panel/file-panel.spec.ts:97:81
|
|
[Chrome] › playwright/e2e/modules/custom-component.spec.ts:115:9 › Custom Component API › basic functionality › should allow downloading media when the allowDownloading hint is set to true:
apps/web/playwright/e2e/modules/custom-component.spec.ts#L135
1) [Chrome] › playwright/e2e/modules/custom-component.spec.ts:115:9 › Custom Component API › basic functionality › should allow downloading media when the allowDownloading hint is set to true
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeVisible() failed
Locator: getByLabel('Image view').getByLabel('Download')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for getByLabel('Image view').getByLabel('Download')
133 | await expect(page.getByRole("button", { name: "Download" })).toBeVisible();
134 | await imgTile.click();
> 135 | await expect(page.getByLabel("Image view").getByLabel("Download")).toBeVisible();
| ^
136 | });
137 | test(
138 | "should render the next registered component if the filter function throws",
at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/modules/custom-component.spec.ts:135:80
|
|
[Chrome] › playwright/e2e/modules/custom-component.spec.ts:115:9 › Custom Component API › basic functionality › should allow downloading media when the allowDownloading hint is set to true:
apps/web/playwright/e2e/modules/custom-component.spec.ts#L135
1) [Chrome] › playwright/e2e/modules/custom-component.spec.ts:115:9 › Custom Component API › basic functionality › should allow downloading media when the allowDownloading hint is set to true
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeVisible() failed
Locator: getByLabel('Image view').getByLabel('Download')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for getByLabel('Image view').getByLabel('Download')
133 | await expect(page.getByRole("button", { name: "Download" })).toBeVisible();
134 | await imgTile.click();
> 135 | await expect(page.getByLabel("Image view").getByLabel("Download")).toBeVisible();
| ^
136 | });
137 | test(
138 | "should render the next registered component if the filter function throws",
at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/modules/custom-component.spec.ts:135:80
|
|
[Chrome] › playwright/e2e/modules/custom-component.spec.ts:115:9 › Custom Component API › basic functionality › should allow downloading media when the allowDownloading hint is set to true:
apps/web/playwright/e2e/modules/custom-component.spec.ts#L135
1) [Chrome] › playwright/e2e/modules/custom-component.spec.ts:115:9 › Custom Component API › basic functionality › should allow downloading media when the allowDownloading hint is set to true
Error: expect(locator).toBeVisible() failed
Locator: getByLabel('Image view').getByLabel('Download')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for getByLabel('Image view').getByLabel('Download')
133 | await expect(page.getByRole("button", { name: "Download" })).toBeVisible();
134 | await imgTile.click();
> 135 | await expect(page.getByLabel("Image view").getByLabel("Download")).toBeVisible();
| ^
136 | });
137 | test(
138 | "should render the next registered component if the filter function throws",
at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/modules/custom-component.spec.ts:135:80
|
|
[Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:110:5 › OIDC Native › can log in to an existing MAS account @no-firefox @no-webkit @screenshot:
apps/web/playwright/e2e/oidc/oidc-native.spec.ts#L134
1) [Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:110:5 › OIDC Native › can log in to an existing MAS account @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')
132 |
133 | // We should be in
> 134 | await expect(page.getByText("Confirm your digital identity")).toBeVisible();
| ^
135 | });
136 |
137 | test.describe("with force_verification on", () => {
at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/oidc/oidc-native.spec.ts:134:71
|
|
end-to-end-tests
Process completed with exit code 1.
|
|
end-to-end-tests
2 tests failed, skipping stale screenshot reporter.
|
|
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/
|
|
Desktop Linux (static, amd64, false) / Build Linux amd64 SQLCipher static
Failed to save: Failed to FinalizeCacheEntryUpload: Received non-retryable error: Failed request: (404) Not Found: cache entry not found
|
|
🎭 Playwright Run Summary
1 flaky
[Chrome] › playwright/e2e/sliding-sync/sliding-sync.spec.ts:225:5 › Sliding Sync › should show and be able to accept/reject/rescind invites
1 skipped
129 passed (10.7m)
|
|
🎭 Playwright Run Summary
135 passed (12.4m)
|
|
🎭 Playwright Run Summary
2 failed
[Chrome] › playwright/e2e/modules/custom-component.spec.ts:115:9 › Custom Component API › basic functionality › should allow downloading media when the allowDownloading hint is set to true
[Chrome] › playwright/e2e/right-panel/file-panel.spec.ts:55:9 › FilePanel › render › should list tiles on the panel @no-firefox @no-webkit @screenshot
3 skipped
128 passed (13.0m)
|
|
🎭 Playwright Run Summary
1 skipped
6 passed (25.7s)
|
|
🎭 Playwright Run Summary
1 flaky
[Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:110:5 › OIDC Native › can log in to an existing MAS account @no-firefox @no-webkit @screenshot
1 skipped
129 passed (15.5m)
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
blob-report-Chrome-1
|
828 KB |
sha256:95396503150b30c071b940d235ee29b67d45ac3a4672cfaede6aa7935637bfc6
|
|
|
blob-report-Chrome-2
|
13.2 MB |
sha256:09dbc470bc1c54b75dc746b455717e8ee9702de55c292ba7a71204427c70bf21
|
|
|
blob-report-Chrome-3
|
6.63 MB |
sha256:5c21ce9780d55035d2fa0928a58ac370efdc0a82905539dfa2c27b92d40750c3
|
|
|
blob-report-Chrome-4
|
6.61 MB |
sha256:7a48991557ff5a1a305c30ac8b06de50686501a808c947a4622c78ec16d0031b
|
|
|
blob-report-linux-amd64-sqlcipher-static
|
57.6 KB |
sha256:85505ca6a9a9f32fe21d6a851d5867bf80cfe07bbe8d499505b026f1f626f066
|
|
|
desktop-prepare
|
41.2 MB |
sha256:9a581b8d31fdc942d5bf82a1f129e6d3c0d60bd23fe9f91bb094e6eda8608595
|
|
|
html-report
|
25.4 MB |
sha256:f46ddf18d1b5b71b32f97fc011ec5e190c5684a54a4dfae3583dec433b405ec5
|
|
|
linux-amd64-sqlcipher-static
|
283 MB |
sha256:e1aaee185a764bcf930c54c6a793df5a5c4a96eb178db752989d068c7a0783ab
|
|
|
webapp
|
41.4 MB |
sha256:dcf73453c85433da7f29d40dcb6865cf5ab1b090566d7c5533b096613ea20fcf
|
|