Skip to content

Fix e2e shield being invisible in white mode for encrypted room #9459

Fix e2e shield being invisible in white mode for encrypted room

Fix e2e shield being invisible in white mode for encrypted room #9459

Re-run triggered July 25, 2025 10:24
Status Success
Total duration 9m 59s
Artifacts 10

end-to-end-tests.yaml

on: pull_request
Build Element-Web
3m 3s
Build Element-Web
Matrix: playwright
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
end-to-end-tests
53s
end-to-end-tests
Fit to window
Zoom out
Zoom in

Annotations

5 errors and 1 notice
[Chrome] › playwright/e2e/crypto/event-shields.spec.ts:164:13 › Cryptography › event shields › Should show a grey padlock for a key restored from backup: playwright/e2e/crypto/event-shields.spec.ts#L202
4) [Chrome] › playwright/e2e/crypto/event-shields.spec.ts:164:13 › Cryptography › event shields › Should show a grey padlock for a key restored from backup Error: Timed out 5000ms waiting for expect(locator).toContainText(expected) Locator: locator('.mx_EventTile_last') Expected string: "test encrypted 1" Received: <element(s) not found> Call log: - Expect "toContainText" with timeout 5000ms - waiting for locator('.mx_EventTile_last') 200 | /* go back to the test room and find Bob's message again */ 201 | await app.viewRoomById(testRoomId); > 202 | await expect(lastTile).toContainText("test encrypted 1"); | ^ 203 | // The gray shield would be a mx_EventTile_e2eIcon_normal. The red shield would be a mx_EventTile_e2eIcon_warning. 204 | // No shield would have no div mx_EventTile_e2eIcon at all. 205 | await expect(lastTileE2eIcon).toHaveClass(/mx_EventTile_e2eIcon_normal/); at /home/runner/work/element-web/element-web/playwright/e2e/crypto/event-shields.spec.ts:202:36
[Chrome] › playwright/e2e/crypto/device-verification.spec.ts:129:9 › Device verification › Verify device with QR code during login @no-webkit: playwright/e2e/crypto/device-verification.spec.ts#L0
3) [Chrome] › playwright/e2e/crypto/device-verification.spec.ts:129:9 › Device verification › Verify device with QR code during login @no-webkit Error: apiRequestContext.fetch: Request context disposed. Call log: - → POST http://localhost:38103/_synapse/admin/v1/register - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.7258.5 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 308 at Api.request (/home/runner/work/element-web/element-web/node_modules/@element-hq/element-web-playwright-common/lib/utils/api.js:28:41) at StartedSynapseContainer.registerUserInternal (/home/runner/work/element-web/element-web/node_modules/@element-hq/element-web-playwright-common/lib/testcontainers/synapse.js:287:42) at Object.credentials (/home/runner/work/element-web/element-web/node_modules/@element-hq/element-web-playwright-common/lib/fixtures/user.js:16:29)
[Chrome] › playwright/e2e/crypto/device-verification.spec.ts:129:9 › Device verification › Verify device with QR code during login @no-webkit: playwright/e2e/crypto/device-verification.spec.ts#L104
3) [Chrome] › playwright/e2e/crypto/device-verification.spec.ts:129:9 › Device verification › Verify device with QR code during login @no-webkit Error: "route.fetch: Test ended." while running route callback. Consider awaiting `await page.unrouteAll({ behavior: 'ignoreErrors' })` before the end of the test to ignore remaining routes in flight. 102 | await route.fulfill({ json: {} }); 103 | await new Promise((f) => setTimeout(f, 1000)); > 104 | await route.fetch(); | ^ 105 | }); 106 | 107 | await logIntoElement(page, credentials); at /home/runner/work/element-web/element-web/playwright/e2e/crypto/device-verification.spec.ts:104:25
[Chrome] › playwright/e2e/audio-player/audio-player.spec.ts:250:9 › Audio player › should support creating a reply chain with multiple audio files @no-firefox @no-webkit @screenshot: playwright/e2e/audio-player/audio-player.spec.ts#L283
2) [Chrome] › playwright/e2e/audio-player/audio-player.spec.ts:250:9 › Audio player › should support creating a reply chain with multiple audio files @no-firefox @no-webkit @screenshot Error: Timed out 5000ms waiting for expect(locator).toHaveCount(expected) Locator: locator('.mx_EventTile_last').locator('.mx_ReplyChain') Expected: 2 Received: 1 Call log: - Expect "toHaveCount" with timeout 5000ms - waiting for locator('.mx_EventTile_last').locator('.mx_ReplyChain') 9 × locator resolved to 1 element - unexpected value "1" 281 | 282 | // Assert that there are two "mx_ReplyChain" elements > 283 | await expect(tile.locator(".mx_ReplyChain")).toHaveCount(2); | ^ 284 | 285 | // Assert that one line contains the user name 286 | await expect(tile.locator(".mx_ReplyChain .mx_ReplyTile_sender").getByText(user.displayName)).toBeVisible(); at /home/runner/work/element-web/element-web/playwright/e2e/audio-player/audio-player.spec.ts:283:58
[Chrome] › playwright/e2e/audio-player/audio-player.spec.ts:222:9 › Audio player › should support replying to audio file with another audio file @no-firefox @no-webkit @screenshot: playwright/e2e/audio-player/audio-player.spec.ts#L244
1) [Chrome] › playwright/e2e/audio-player/audio-player.spec.ts:222:9 › Audio player › should support replying to audio file with another audio file @no-firefox @no-webkit @screenshot Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.mx_EventTile_last').locator('.mx_ReplyChain_wrapper .mx_MFileBody_info[role=\'button\']').locator('.mx_MFileBody_info_filename') Expected: visible Received: <element(s) not found> Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for locator('.mx_EventTile_last').locator('.mx_ReplyChain_wrapper .mx_MFileBody_info[role=\'button\']').locator('.mx_MFileBody_info_filename') 242 | const button = tile.locator(".mx_ReplyChain_wrapper .mx_MFileBody_info[role='button']"); 243 | // Assert that the file button has file name > 244 | await expect(button.locator(".mx_MFileBody_info_filename")).toBeVisible(); | ^ 245 | 246 | await takeSnapshots(page, app, "Selected EventTile of audio player with a reply"); 247 | }, at /home/runner/work/element-web/element-web/playwright/e2e/audio-player/audio-player.spec.ts:244:73
🎭 Playwright Run Summary
4 flaky [Chrome] › playwright/e2e/audio-player/audio-player.spec.ts:222:9 › Audio player › should support replying to audio file with another audio file @no-firefox @no-webkit @screenshot [Chrome] › playwright/e2e/audio-player/audio-player.spec.ts:250:9 › Audio player › should support creating a reply chain with multiple audio files @no-firefox @no-webkit @screenshot [Chrome] › playwright/e2e/crypto/device-verification.spec.ts:129:9 › Device verification › Verify device with QR code during login @no-webkit [Chrome] › playwright/e2e/crypto/event-shields.spec.ts:164:13 › Cryptography › event shields › Should show a grey padlock for a key restored from backup 66 passed (8.0m)

Artifacts

Produced during runtime
Name Size Digest
all-blob-reports-Chrome-1 Expired
26.9 MB
sha256:3783621d5e782bb3eca2e0f03dfb58e04ab27f96b0c79efe974cd7e8de161f71
html-report Expired
42.8 MB
sha256:1c75c7ec5ad9f491cb481bc70d7a5b5de0324b1f908581d3cdb321588b872afa