Skip to content

feat: Trailing block extension rewrite (BLO-843) #7768

feat: Trailing block extension rewrite (BLO-843)

feat: Trailing block extension rewrite (BLO-843) #7768

Triggered via pull request May 12, 2026 08:08
Status Failure
Total duration 6m 46s
Artifacts 15

build.yml

on: pull_request
Matrix: playwright
Merge Playwright Reports
55s
Merge Playwright Reports
Fit to window
Zoom out
Zoom in

Annotations

15 errors, 1 warning, and 7 notices
Playwright Tests - chromium (2/2)
Process completed with exit code 1.
[chromium] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor: tests/src/end-to-end/static/static.test.ts#L56
1) [chromium] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(Buffer).toMatchSnapshot(expected) Expected an image 1280px by 1685px, received 1280px by 1655px. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts-snapshots/static-rendering-equality-chromium-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-chromium-retry2/static-rendering-equality-1-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-chromium-retry2/static-rendering-equality-1-diff.png 54 | scale: "css", 55 | }), > 56 | ).toMatchSnapshot("static-rendering-equality.png", { | ^ 57 | // Allowance for variations in the image caption text. The placehold.co 58 | // URL renders differently (e.g., '×' vs 'x' character) between the live 59 | // editor and static screenshots. at /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts:56:7
[chromium] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor: tests/src/end-to-end/static/static.test.ts#L56
1) [chromium] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(Buffer).toMatchSnapshot(expected) Expected an image 1280px by 1685px, received 1280px by 1655px. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts-snapshots/static-rendering-equality-chromium-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-chromium-retry1/static-rendering-equality-1-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-chromium-retry1/static-rendering-equality-1-diff.png 54 | scale: "css", 55 | }), > 56 | ).toMatchSnapshot("static-rendering-equality.png", { | ^ 57 | // Allowance for variations in the image caption text. The placehold.co 58 | // URL renders differently (e.g., '×' vs 'x' character) between the live 59 | // editor and static screenshots. at /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts:56:7
[chromium] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor: tests/src/end-to-end/static/static.test.ts#L56
1) [chromium] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor Error: expect(Buffer).toMatchSnapshot(expected) Expected an image 1280px by 1685px, received 1280px by 1655px. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts-snapshots/static-rendering-equality-chromium-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-chromium/static-rendering-equality-1-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-chromium/static-rendering-equality-1-diff.png 54 | scale: "css", 55 | }), > 56 | ).toMatchSnapshot("static-rendering-equality.png", { | ^ 57 | // Allowance for variations in the image caption text. The placehold.co 58 | // URL renders differently (e.g., '×' vs 'x' character) between the live 59 | // editor and static screenshots. at /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts:56:7
Playwright Tests - webkit (2/2)
Process completed with exit code 1.
[webkit] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor: tests/src/end-to-end/static/static.test.ts#L56
1) [webkit] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(Buffer).toMatchSnapshot(expected) Expected an image 1280px by 1661px, received 1280px by 1631px. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts-snapshots/static-rendering-equality-webkit-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-webkit-retry2/static-rendering-equality-1-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-webkit-retry2/static-rendering-equality-1-diff.png 54 | scale: "css", 55 | }), > 56 | ).toMatchSnapshot("static-rendering-equality.png", { | ^ 57 | // Allowance for variations in the image caption text. The placehold.co 58 | // URL renders differently (e.g., '×' vs 'x' character) between the live 59 | // editor and static screenshots. at /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts:56:7
[webkit] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor: tests/src/end-to-end/static/static.test.ts#L56
1) [webkit] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(Buffer).toMatchSnapshot(expected) Expected an image 1280px by 1661px, received 1280px by 1631px. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts-snapshots/static-rendering-equality-webkit-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-webkit-retry1/static-rendering-equality-1-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-webkit-retry1/static-rendering-equality-1-diff.png 54 | scale: "css", 55 | }), > 56 | ).toMatchSnapshot("static-rendering-equality.png", { | ^ 57 | // Allowance for variations in the image caption text. The placehold.co 58 | // URL renders differently (e.g., '×' vs 'x' character) between the live 59 | // editor and static screenshots. at /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts:56:7
[webkit] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor: tests/src/end-to-end/static/static.test.ts#L56
1) [webkit] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor Error: expect(Buffer).toMatchSnapshot(expected) Expected an image 1280px by 1661px, received 1280px by 1631px. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts-snapshots/static-rendering-equality-webkit-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-webkit/static-rendering-equality-1-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-webkit/static-rendering-equality-1-diff.png 54 | scale: "css", 55 | }), > 56 | ).toMatchSnapshot("static-rendering-equality.png", { | ^ 57 | // Allowance for variations in the image caption text. The placehold.co 58 | // URL renders differently (e.g., '×' vs 'x' character) between the live 59 | // editor and static screenshots. at /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts:56:7
Playwright Tests - firefox (2/2)
Process completed with exit code 1.
[firefox] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor: tests/src/end-to-end/static/static.test.ts#L56
1) [firefox] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(Buffer).toMatchSnapshot(expected) Expected an image 1280px by 1671px, received 1280px by 1641px. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts-snapshots/static-rendering-equality-firefox-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-firefox-retry2/static-rendering-equality-1-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-firefox-retry2/static-rendering-equality-1-diff.png 54 | scale: "css", 55 | }), > 56 | ).toMatchSnapshot("static-rendering-equality.png", { | ^ 57 | // Allowance for variations in the image caption text. The placehold.co 58 | // URL renders differently (e.g., '×' vs 'x' character) between the live 59 | // editor and static screenshots. at /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts:56:7
[firefox] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor: tests/src/end-to-end/static/static.test.ts#L56
1) [firefox] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(Buffer).toMatchSnapshot(expected) Expected an image 1280px by 1671px, received 1280px by 1641px. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts-snapshots/static-rendering-equality-firefox-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-firefox-retry1/static-rendering-equality-1-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-firefox-retry1/static-rendering-equality-1-diff.png 54 | scale: "css", 55 | }), > 56 | ).toMatchSnapshot("static-rendering-equality.png", { | ^ 57 | // Allowance for variations in the image caption text. The placehold.co 58 | // URL renders differently (e.g., '×' vs 'x' character) between the live 59 | // editor and static screenshots. at /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts:56:7
[firefox] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor: tests/src/end-to-end/static/static.test.ts#L56
1) [firefox] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor Error: expect(Buffer).toMatchSnapshot(expected) Expected an image 1280px by 1671px, received 1280px by 1641px. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts-snapshots/static-rendering-equality-firefox-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-firefox/static-rendering-equality-1-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/static-static-Check-static-17607-isually-matches-live-editor-firefox/static-rendering-equality-1-diff.png 54 | scale: "css", 55 | }), > 56 | ).toMatchSnapshot("static-rendering-equality.png", { | ^ 57 | // Allowance for variations in the image caption text. The placehold.co 58 | // URL renders differently (e.g., '×' vs 'x' character) between the live 59 | // editor and static screenshots. at /__w/BlockNote/BlockNote/tests/src/end-to-end/static/static.test.ts:56:7
[chromium] › src/end-to-end/customblocks/customblocks.test.ts:10:7 › Check custom block functionality › Should be able to interactively update vanilla custom blocks: tests/src/end-to-end/customblocks/customblocks.test.ts#L19
1) [chromium] › src/end-to-end/customblocks/customblocks.test.ts:10:7 › Check custom block functionality › Should be able to interactively update vanilla custom blocks Error: expect(Buffer).toMatchSnapshot(expected) 8041 pixels (ratio 0.01 of all image pixels) are different. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/customblocks/customblocks.test.ts-snapshots/vanilla-interactivity-chromium-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/customblocks-customblocks--8679c-pdate-vanilla-custom-blocks-chromium/vanilla-interactivity-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/customblocks-customblocks--8679c-pdate-vanilla-custom-blocks-chromium/vanilla-interactivity-diff.png 17 | 18 | await compareDocToSnapshot(page, "vanillaInteractivity"); > 19 | expect(await page.screenshot()).toMatchSnapshot( | ^ 20 | "vanilla-interactivity.png", 21 | ); 22 | }); at /__w/BlockNote/BlockNote/tests/src/end-to-end/customblocks/customblocks.test.ts:19:37
[webkit] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:306:7 › Check Keyboard Handlers' Behaviour › Check Delete before shallower block: tests/src/utils/editor.ts#L47
1) [webkit] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:306:7 › Check Keyboard Handlers' Behaviour › Check Delete before shallower block Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(string).toMatchSnapshot(expected) @@ -41,19 +41,41 @@ "textAlignment": "left" }, "content": [ { "type": "text", - "text": "ParagraphParagraph" + "text": "Paragrah" } ] } ] } ] } ] + }, + { + "type": "blockContainer", + "attrs": { + "id": "2" + }, + "content": [ + { + "type": "paragraph", + "attrs": { + "backgroundColor": "default", + "textColor": "default", + "textAlignment": "left" + }, + "content": [ + { + "type": "text", + "text": "Paragraph" + } + ] + } + ] } ] } ] } Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts-snapshots/deleteShallowerBlock-json-webkit-linux.json Received: /__w/BlockNote/BlockNote/tests/test-results/keyboardhandlers-keyboardh-9a661-lete-before-shallower-block-webkit-retry1/deleteShallowerBlock-json-actual.json at ../utils/editor.ts:47 45 | // Remove id from docs 46 | const doc = JSON.stringify(await getDoc(page), null, 2); > 47 | expect(doc).toMatchSnapshot(`${name}.json`); | ^ 48 | } 49 | at compareDocToSnapshot (/__w/BlockNote/BlockNote/tests/src/utils/editor.ts:47:15) at /__w/BlockNote/BlockNote/tests/src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:319:5
[webkit] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:306:7 › Check Keyboard Handlers' Behaviour › Check Delete before shallower block: tests/src/utils/editor.ts#L47
1) [webkit] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:306:7 › Check Keyboard Handlers' Behaviour › Check Delete before shallower block Error: expect(string).toMatchSnapshot(expected) @@ -41,19 +41,41 @@ "textAlignment": "left" }, "content": [ { "type": "text", - "text": "ParagraphParagraph" + "text": "Paragrap" } ] } ] } ] } ] + }, + { + "type": "blockContainer", + "attrs": { + "id": "2" + }, + "content": [ + { + "type": "paragraph", + "attrs": { + "backgroundColor": "default", + "textColor": "default", + "textAlignment": "left" + }, + "content": [ + { + "type": "text", + "text": "Paragraph" + } + ] + } + ] } ] } ] } Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts-snapshots/deleteShallowerBlock-json-webkit-linux.json Received: /__w/BlockNote/BlockNote/tests/test-results/keyboardhandlers-keyboardh-9a661-lete-before-shallower-block-webkit/deleteShallowerBlock-json-actual.json at ../utils/editor.ts:47 45 | // Remove id from docs 46 | const doc = JSON.stringify(await getDoc(page), null, 2); > 47 | expect(doc).toMatchSnapshot(`${name}.json`); | ^ 48 | } 49 | at compareDocToSnapshot (/__w/BlockNote/BlockNote/tests/src/utils/editor.ts:47:15) at /__w/BlockNote/BlockNote/tests/src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:319:5
Build
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
🎭 Playwright Run Summary
1 failed [chromium] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor 42 passed (40.0s)
Build
{ "workflowData": { "owner": "TypeCellOS", "repo": "BlockNote", "sha": "f00d1fbbe908d1c05555dfdbe14af6008891f355", "ref": "2733", "headBranch": "trailing-block-update" }, "key": "TEaLkETisx", "runId": 25721900504, "webhookDebug": { "action": "requested", "head_branch": "trailing-block-update", "head_repository_full_name": "TypeCellOS/BlockNote", "full_name": "TypeCellOS/BlockNote", "isPullRequest": true, "prNumber": 2733, "prNumberType": "number", "isNewPullRequest": true, "isOldPullRequest": false, "prKey": "TypeCellOS/BlockNote:trailing-block-update", "oldPrDataHash": "IXicH67kMJ", "lookupKey": "TypeCellOS/BlockNote:trailing-block-update", "data": { "owner": "TypeCellOS", "repo": "BlockNote", "sha": "f00d1fbbe908d1c05555dfdbe14af6008891f355", "ref": "2733", "headBranch": "trailing-block-update" } }, "currentCursor": { "sha": "9379722d5661367361ea809ab17751ba361d97b9", "timestamp": 25680089194 }, "pkgPrNewVersion": "0.0.71" }
🎭 Playwright Run Summary
1 failed [webkit] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor 42 passed (1.2m)
🎭 Playwright Run Summary
16 skipped 78 passed (1.5m)
🎭 Playwright Run Summary
1 failed [firefox] › src/end-to-end/static/static.test.ts:16:7 › Check static rendering › Check static rendering visually matches live editor 1 skipped 41 passed (49.9s)
🎭 Playwright Run Summary
1 flaky [chromium] › src/end-to-end/customblocks/customblocks.test.ts:10:7 › Check custom block functionality › Should be able to interactively update vanilla custom blocks 2 skipped 91 passed (1.3m)
🎭 Playwright Run Summary
1 flaky [webkit] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:306:7 › Check Keyboard Handlers' Behaviour › Check Delete before shallower block 12 skipped 81 passed (3.1m)

Artifacts

Produced during runtime
Name Size Digest
blob-report-chromium-1 Expired
282 KB
sha256:851d4d4bbb119863d8fd802a7c2decfb3453739956cf580afd0bafb2d1ab322f
blob-report-chromium-2 Expired
1.07 MB
sha256:9ade745e79c1896b23f5c3ad1392a4dd09125c53d991260379cfd491f67c76db
blob-report-firefox-1 Expired
113 KB
sha256:ff3219b9359c4ceb8c3cb35bc550191f10f1ad7250238e01a9c88ab234f8ee98
blob-report-firefox-2 Expired
1.85 MB
sha256:5587059f9597d5baabb66d444699abac4d544dbc1cf4759cc871c1d119a4a3f7
blob-report-webkit-1 Expired
3.91 MB
sha256:0d7c76a5f996362f15014e8a971404563628f00d2b4f1b9f0214e32e882949be
blob-report-webkit-2 Expired
1.96 MB
sha256:26e28d36b6092266276cfffe9f0390639600e385c7f1e2aed8209b4454a3a527
playwright-build Expired
21.2 MB
sha256:3b18c47494b0163505f3a7369b1f238fe76a0cf4136b26698dac2ad6b48c87fa
playwright-report-chromium-1 Expired
799 KB
sha256:911426bf2f014784b8cca5739803e1ee022a66a72a360ce99d0d134738466a84
playwright-report-chromium-2 Expired
1.23 MB
sha256:5b4138f1b3599c2bcda3a82b7d0154691bd3fea8c667ab4209db24c118d543a7
playwright-report-firefox-1 Expired
250 KB
sha256:c409472e0a80502caf830c140503fe1bf72adcafcd72231edf81def49af5658e
playwright-report-firefox-2 Expired
1.89 MB
sha256:8982b1b714b7564f9c91a2ed4ec943f4abb8234f318d82e2e687d34005d9cc66
playwright-report-merged Expired
7.89 MB
sha256:5523bcf27af140ee127e3aee1593b735cce63a0f8caaea6e62ebce9fc99a9f3b
playwright-report-webkit-1 Expired
4.38 MB
sha256:3b6aa060b767908a7b4ab1f47f8994be4f35ec449f98b87f3e5a3dfc60d76f2d
playwright-report-webkit-2 Expired
1.93 MB
sha256:5624b9e02a33331d17d2017c24fd2249c8b01d73de7dd95edf284ce8d6d30130
relative-ci-artifacts-editor
44.6 KB
sha256:e2d7a05c3120b831ee52abdb378394c38d908941378bf175d0520aeb743ee347