Skip to content

feat(viewer): render rich parts server-side, served from /s/:id #340

feat(viewer): render rich parts server-side, served from /s/:id

feat(viewer): render rich parts server-side, served from /s/:id #340

Triggered via pull request June 24, 2026 13:08
Status Failure
Total duration 3m 23s
Artifacts

ci.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

10 errors and 1 notice
[webkit] › e2e/theme.spec.ts:61:1 › the picked theme persists across a reload: e2e/theme.spec.ts#L78
5) [webkit] › e2e/theme.spec.ts:61:1 › the picked theme persists across a reload ───────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.card iframe[src]') Expected pattern: /theme=gruvbox/ Error: strict mode violation: locator('.card iframe[src]') resolved to 2 elements: 1) <iframe sandbox="allow-scripts" title="Themed (part 1)" src="/s/ecMw349GP8Y?part=0&ver=1&cb=1&theme=gruvbox&mode=light"></iframe> aka locator('iframe[title="Themed (part 1)"]') 2) <iframe sandbox="allow-scripts" class="partframe mdframe" src="blob:http://localhost:43083/b938b7f9-6f9f-4ea7-b1e2-00dd28d4a6ff"></iframe> aka locator('iframe').nth(1) Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('.card iframe[src]') 76 | await page.reload(); 77 | await expect(page.locator("#themeSel")).toHaveValue("gruvbox"); > 78 | await expect(page.locator(".card iframe[src]")).toHaveAttribute("src", /theme=gruvbox/); | ^ 79 | await expect 80 | .poll(() => 81 | page.evaluate(() => at /home/runner/work/sideshow/sideshow/e2e/theme.spec.ts:78:51
[webkit] › e2e/theme.spec.ts:61:1 › the picked theme persists across a reload: e2e/theme.spec.ts#L78
5) [webkit] › e2e/theme.spec.ts:61:1 › the picked theme persists across a reload ───────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.card iframe[src]') Expected pattern: /theme=gruvbox/ Error: strict mode violation: locator('.card iframe[src]') resolved to 2 elements: 1) <iframe sandbox="allow-scripts" title="Themed (part 1)" src="/s/t7hzIWNt7DY?part=0&ver=1&cb=1&theme=gruvbox&mode=light"></iframe> aka locator('iframe[title="Themed (part 1)"]') 2) <iframe sandbox="allow-scripts" class="partframe mdframe" src="blob:http://localhost:45189/fdc442cf-2be1-413c-b9df-ef6cda75cc3b"></iframe> aka locator('iframe').nth(1) Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('.card iframe[src]') 76 | await page.reload(); 77 | await expect(page.locator("#themeSel")).toHaveValue("gruvbox"); > 78 | await expect(page.locator(".card iframe[src]")).toHaveAttribute("src", /theme=gruvbox/); | ^ 79 | await expect 80 | .poll(() => 81 | page.evaluate(() => at /home/runner/work/sideshow/sideshow/e2e/theme.spec.ts:78:51
[webkit] › e2e/theme.spec.ts:15:1 › switching the board theme re-themes chrome: e2e/theme.spec.ts#L33
4) [webkit] › e2e/theme.spec.ts:15:1 › switching the board theme re-themes chrome, html parts, and markdown together Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.card').locator('iframe[src]') Expected pattern: /theme=github/ Error: strict mode violation: locator('.card').locator('iframe[src]') resolved to 2 elements: 1) <iframe sandbox="allow-scripts" title="Themed (part 1)" src="/s/qj33a9ii1is?part=0&ver=1&cb=1&theme=github&mode=light"></iframe> aka locator('iframe[title="Themed (part 1)"]') 2) <iframe sandbox="allow-scripts" class="partframe mdframe" src="blob:http://localhost:34641/d173ee93-8aa0-4b92-ba8d-019d5af31778"></iframe> aka locator('iframe').nth(1) Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('.card').locator('iframe[src]') 31 | // default theme is github; the iframe carries it in its src and the chrome 32 | // exposes the github light bg via the injected --bg var > 33 | await expect(iframe).toHaveAttribute("src", /theme=github/); | ^ 34 | await expect(token).toBeVisible(); 35 | const bgBefore = await page.evaluate(() => 36 | getComputedStyle(document.documentElement).getPropertyValue("--bg").trim(), at /home/runner/work/sideshow/sideshow/e2e/theme.spec.ts:33:24
[webkit] › e2e/theme.spec.ts:15:1 › switching the board theme re-themes chrome: e2e/theme.spec.ts#L33
4) [webkit] › e2e/theme.spec.ts:15:1 › switching the board theme re-themes chrome, html parts, and markdown together Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.card').locator('iframe[src]') Expected pattern: /theme=github/ Error: strict mode violation: locator('.card').locator('iframe[src]') resolved to 2 elements: 1) <iframe sandbox="allow-scripts" title="Themed (part 1)" src="/s/9_EqDWvhhis?part=0&ver=1&cb=1&theme=github&mode=light"></iframe> aka locator('iframe[title="Themed (part 1)"]') 2) <iframe sandbox="allow-scripts" class="partframe mdframe" src="blob:http://localhost:44931/b316c7dc-c5c7-413f-bb93-c3ad4fd17c53"></iframe> aka locator('iframe').nth(1) Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('.card').locator('iframe[src]') 31 | // default theme is github; the iframe carries it in its src and the chrome 32 | // exposes the github light bg via the injected --bg var > 33 | await expect(iframe).toHaveAttribute("src", /theme=github/); | ^ 34 | await expect(token).toBeVisible(); 35 | const bgBefore = await page.evaluate(() => 36 | getComputedStyle(document.documentElement).getPropertyValue("--bg").trim(), at /home/runner/work/sideshow/sideshow/e2e/theme.spec.ts:33:24
[chromium] › e2e/theme.spec.ts:164:1 › a theme switch in one tab re-themes another open tab via SSE: e2e/theme.spec.ts#L174
3) [chromium] › e2e/theme.spec.ts:164:1 › a theme switch in one tab re-themes another open tab via SSE Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.card iframe[src]') Expected pattern: /theme=github/ Error: strict mode violation: locator('.card iframe[src]') resolved to 2 elements: 1) <iframe sandbox="allow-scripts" title="Themed (part 1)" src="/s/gwJaLjNjwro?part=0&ver=1&cb=1&theme=github&mode=light"></iframe> aka locator('iframe[title="Themed (part 1)"]') 2) <iframe sandbox="allow-scripts" class="partframe mdframe" src="blob:http://localhost:32837/e886de44-0ad9-47a8-b69f-e5a022588313"></iframe> aka locator('iframe').nth(1) Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('.card iframe[src]') 172 | const other = await context.newPage(); 173 | await other.goto(server.url); > 174 | await expect(other.locator(".card iframe[src]")).toHaveAttribute("src", /theme=github/); | ^ 175 | 176 | // switch in the first tab; the second re-themes off the theme-changed SSE 177 | // event without its own user action at /home/runner/work/sideshow/sideshow/e2e/theme.spec.ts:174:52
[chromium] › e2e/theme.spec.ts:164:1 › a theme switch in one tab re-themes another open tab via SSE: e2e/theme.spec.ts#L174
3) [chromium] › e2e/theme.spec.ts:164:1 › a theme switch in one tab re-themes another open tab via SSE Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.card iframe[src]') Expected pattern: /theme=github/ Error: strict mode violation: locator('.card iframe[src]') resolved to 2 elements: 1) <iframe sandbox="allow-scripts" title="Themed (part 1)" src="/s/AW5aGOFsND8?part=0&ver=1&cb=1&theme=github&mode=light"></iframe> aka locator('iframe[title="Themed (part 1)"]') 2) <iframe sandbox="allow-scripts" class="partframe mdframe" src="blob:http://localhost:43829/61bd3d6e-3f5f-476a-9447-45cbe9e0c721"></iframe> aka locator('iframe').nth(1) Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('.card iframe[src]') 172 | const other = await context.newPage(); 173 | await other.goto(server.url); > 174 | await expect(other.locator(".card iframe[src]")).toHaveAttribute("src", /theme=github/); | ^ 175 | 176 | // switch in the first tab; the second re-themes off the theme-changed SSE 177 | // event without its own user action at /home/runner/work/sideshow/sideshow/e2e/theme.spec.ts:174:52
[chromium] › e2e/theme.spec.ts:61:1 › the picked theme persists across a reload: e2e/theme.spec.ts#L78
2) [chromium] › e2e/theme.spec.ts:61:1 › the picked theme persists across a reload ─────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.card iframe[src]') Expected pattern: /theme=gruvbox/ Error: strict mode violation: locator('.card iframe[src]') resolved to 2 elements: 1) <iframe sandbox="allow-scripts" title="Themed (part 1)" src="/s/WFDAu4SXIFY?part=0&ver=1&cb=1&theme=gruvbox&mode=light"></iframe> aka locator('iframe[title="Themed (part 1)"]') 2) <iframe sandbox="allow-scripts" class="partframe mdframe" src="blob:http://localhost:42011/58126133-43f3-4518-b7bb-57783840fe28"></iframe> aka locator('iframe').nth(1) Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('.card iframe[src]') 76 | await page.reload(); 77 | await expect(page.locator("#themeSel")).toHaveValue("gruvbox"); > 78 | await expect(page.locator(".card iframe[src]")).toHaveAttribute("src", /theme=gruvbox/); | ^ 79 | await expect 80 | .poll(() => 81 | page.evaluate(() => at /home/runner/work/sideshow/sideshow/e2e/theme.spec.ts:78:51
[chromium] › e2e/theme.spec.ts:61:1 › the picked theme persists across a reload: e2e/theme.spec.ts#L78
2) [chromium] › e2e/theme.spec.ts:61:1 › the picked theme persists across a reload ─────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.card iframe[src]') Expected pattern: /theme=gruvbox/ Error: strict mode violation: locator('.card iframe[src]') resolved to 2 elements: 1) <iframe sandbox="allow-scripts" title="Themed (part 1)" src="/s/-hTef63rK30?part=0&ver=1&cb=1&theme=gruvbox&mode=light"></iframe> aka locator('iframe[title="Themed (part 1)"]') 2) <iframe sandbox="allow-scripts" class="partframe mdframe" src="blob:http://localhost:38613/78b797e9-82d3-4ad9-9f20-35a88c8196f7"></iframe> aka locator('iframe').nth(1) Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('.card iframe[src]') 76 | await page.reload(); 77 | await expect(page.locator("#themeSel")).toHaveValue("gruvbox"); > 78 | await expect(page.locator(".card iframe[src]")).toHaveAttribute("src", /theme=gruvbox/); | ^ 79 | await expect 80 | .poll(() => 81 | page.evaluate(() => at /home/runner/work/sideshow/sideshow/e2e/theme.spec.ts:78:51
[chromium] › e2e/theme.spec.ts:15:1 › switching the board theme re-themes chrome: e2e/theme.spec.ts#L33
1) [chromium] › e2e/theme.spec.ts:15:1 › switching the board theme re-themes chrome, html parts, and markdown together Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.card').locator('iframe[src]') Expected pattern: /theme=github/ Error: strict mode violation: locator('.card').locator('iframe[src]') resolved to 2 elements: 1) <iframe sandbox="allow-scripts" title="Themed (part 1)" src="/s/JPUM_2ypsk4?part=0&ver=1&cb=1&theme=github&mode=light"></iframe> aka locator('iframe[title="Themed (part 1)"]') 2) <iframe sandbox="allow-scripts" class="partframe mdframe" src="blob:http://localhost:40829/7b87f30a-bab2-43f6-a29c-3bb111f6335d"></iframe> aka locator('iframe').nth(1) Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('.card').locator('iframe[src]') 31 | // default theme is github; the iframe carries it in its src and the chrome 32 | // exposes the github light bg via the injected --bg var > 33 | await expect(iframe).toHaveAttribute("src", /theme=github/); | ^ 34 | await expect(token).toBeVisible(); 35 | const bgBefore = await page.evaluate(() => 36 | getComputedStyle(document.documentElement).getPropertyValue("--bg").trim(), at /home/runner/work/sideshow/sideshow/e2e/theme.spec.ts:33:24
[chromium] › e2e/theme.spec.ts:15:1 › switching the board theme re-themes chrome: e2e/theme.spec.ts#L33
1) [chromium] › e2e/theme.spec.ts:15:1 › switching the board theme re-themes chrome, html parts, and markdown together Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.card').locator('iframe[src]') Expected pattern: /theme=github/ Error: strict mode violation: locator('.card').locator('iframe[src]') resolved to 2 elements: 1) <iframe sandbox="allow-scripts" title="Themed (part 1)" src="/s/DoqDSqdVCvk?part=0&ver=1&cb=1&theme=github&mode=light"></iframe> aka locator('iframe[title="Themed (part 1)"]') 2) <iframe sandbox="allow-scripts" class="partframe mdframe" src="blob:http://localhost:41443/7e76db32-7a3d-4605-8393-0bebbd42dc0d"></iframe> aka locator('iframe').nth(1) Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('.card').locator('iframe[src]') 31 | // default theme is github; the iframe carries it in its src and the chrome 32 | // exposes the github light bg via the injected --bg var > 33 | await expect(iframe).toHaveAttribute("src", /theme=github/); | ^ 34 | await expect(token).toBeVisible(); 35 | const bgBefore = await page.evaluate(() => 36 | getComputedStyle(document.documentElement).getPropertyValue("--bg").trim(), at /home/runner/work/sideshow/sideshow/e2e/theme.spec.ts:33:24
🎭 Playwright Run Summary
6 failed [chromium] › e2e/theme.spec.ts:15:1 › switching the board theme re-themes chrome, html parts, and markdown together [chromium] › e2e/theme.spec.ts:61:1 › the picked theme persists across a reload ──────────────── [chromium] › e2e/theme.spec.ts:164:1 › a theme switch in one tab re-themes another open tab via SSE [webkit] › e2e/theme.spec.ts:15:1 › switching the board theme re-themes chrome, html parts, and markdown together [webkit] › e2e/theme.spec.ts:61:1 › the picked theme persists across a reload ────────────────── [webkit] › e2e/theme.spec.ts:164:1 › a theme switch in one tab re-themes another open tab via SSE 118 passed (2.2m)