Skip to content

fix: Partial block to block conversion in HTML export #6020

fix: Partial block to block conversion in HTML export

fix: Partial block to block conversion in HTML export #6020

Triggered via pull request October 8, 2025 18:31
Status Failure
Total duration 10m 11s
Artifacts 3

build.yml

on: pull_request
Matrix: playwright
Fit to window
Zoom out
Zoom in

Annotations

14 errors and 3 notices
Build
Process completed with exit code 1.
src/unit/core/schema/runTests.test.ts > Schema test > Block specs test: tests/src/unit/core/schema/runTests.test.ts#L13
Error: Snapshot `Schema test > Block specs test 1` mismatched - Expected + Received @@ -508,10 +508,78 @@ "parse": [Function], "render": [Function], "toExternalHTML": [Function], }, }, + "exportTestBlock": { + "config": { + "content": "none", + "propSchema": { + "backgroundColor": { + "default": "default", + }, + "textAlignment": { + "default": "left", + "values": [ + "left", + "center", + "right", + "justify", + ], + }, + "textColor": { + "default": "default", + }, + }, + "type": "exportTestBlock", + }, + "extensions": undefined, + "implementation": { + "node": _Node { + "child": _Node { + "child": null, + "config": { + "addAttributes": [Function], + "addNodeView": [Function], + "addOptions": [Function], + "code": false, + "content": "", + "defining": true, + "group": "blockContent", + "isolating": true, + "name": "exportTestBlock", + "parseHTML": [Function], + "priority": 101, + "renderHTML": [Function], + "selectable": true, + }, + "name": "exportTestBlock", + "parent": null, + "type": "node", + }, + "config": { + "addAttributes": [Function], + "addNodeView": [Function], + "code": false, + "content": "", + "defining": true, + "group": "blockContent", + "isolating": true, + "name": "exportTestBlock", + "parseHTML": [Function], + "priority": 101, + "renderHTML": [Function], + "selectable": true, + }, + "name": "exportTestBlock", + "parent": null, + "type": "node", + }, + "render": [Function], + "toExternalHTML": [Function], + }, + }, "file": { "config": { "content": "none", "propSchema": { "backgroundColor": { ❯ src/unit/core/schema/runTests.test.ts:13:5
[webkit] › src/end-to-end/basics/basicblocks.test.ts:11:7 › Check basic text block appearance › Check basic text block appearance: tests/src/end-to-end/basics/basicblocks.test.ts#L19
2) [webkit] › src/end-to-end/basics/basicblocks.test.ts:11:7 › Check basic text block appearance › Check basic text block appearance Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Test timeout of 30000ms exceeded. Call log: - waiting for locator('[data-content-type="video"] .bn-file-caption') 17 | await page.waitForTimeout(500); 18 | > 19 | await page.locator(`[data-content-type="video"] .bn-file-caption`).click(); | ^ 20 | await page.keyboard.press("Backspace"); 21 | await page.waitForTimeout(500); 22 | at /__w/BlockNote/BlockNote/tests/src/end-to-end/basics/basicblocks.test.ts:19:72
[webkit] › src/end-to-end/basics/basicblocks.test.ts:11:7 › Check basic text block appearance › Check basic text block appearance: tests/src/end-to-end/basics/basicblocks.test.ts#L0
2) [webkit] › src/end-to-end/basics/basicblocks.test.ts:11:7 › Check basic text block appearance › Check basic text block appearance Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded.
[webkit] › src/end-to-end/basics/basicblocks.test.ts:11:7 › Check basic text block appearance › Check basic text block appearance: tests/src/end-to-end/basics/basicblocks.test.ts#L19
2) [webkit] › src/end-to-end/basics/basicblocks.test.ts:11:7 › Check basic text block appearance › Check basic text block appearance Error: locator.click: Test timeout of 30000ms exceeded. Call log: - waiting for locator('[data-content-type="video"] .bn-file-caption') 17 | await page.waitForTimeout(500); 18 | > 19 | await page.locator(`[data-content-type="video"] .bn-file-caption`).click(); | ^ 20 | await page.keyboard.press("Backspace"); 21 | await page.waitForTimeout(500); 22 | at /__w/BlockNote/BlockNote/tests/src/end-to-end/basics/basicblocks.test.ts:19:72
[webkit] › src/end-to-end/basics/basicblocks.test.ts:11:7 › Check basic text block appearance › Check basic text block appearance: tests/src/end-to-end/basics/basicblocks.test.ts#L0
2) [webkit] › src/end-to-end/basics/basicblocks.test.ts:11:7 › Check basic text block appearance › Check basic text block appearance Test timeout of 30000ms exceeded.
[webkit] › src/end-to-end/ariakit/ariakit.test.ts:28:7 › Check Ariakit UI › Check link toolbar: tests/src/end-to-end/ariakit/ariakit.test.ts#L41
1) [webkit] › src/end-to-end/ariakit/ariakit.test.ts:28:7 › Check Ariakit UI › Check link toolbar Error: expect(Buffer).toMatchSnapshot(expected) 1007 pixels (ratio 0.01 of all image pixels) are different. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/ariakit/ariakit.test.ts-snapshots/ariakit-link-toolbar-webkit-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/ariakit-ariakit-Check-Ariakit-UI-Check-link-toolbar-webkit/ariakit-link-toolbar-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/ariakit-ariakit-Check-Ariakit-UI-Check-link-toolbar-webkit/ariakit-link-toolbar-diff.png 39 | 40 | await page.waitForTimeout(500); > 41 | expect(await page.screenshot()).toMatchSnapshot("ariakit-link-toolbar.png"); | ^ 42 | }); 43 | test("Check slash menu", async ({ page }) => { 44 | await focusOnEditor(page); at /__w/BlockNote/BlockNote/tests/src/end-to-end/ariakit/ariakit.test.ts:41:37
[firefox] › src/end-to-end/slashmenu/slashmenu.test.ts:117:7 › Check SlashMenu Functionality › Should be able to create complex documents that match snapshots: tests/src/utils/editor.ts#L47
5) [firefox] › src/end-to-end/slashmenu/slashmenu.test.ts:117:7 › Check SlashMenu Functionality › Should be able to create complex documents that match snapshots Error: expect(string).toMatchSnapshot(expected) @@ -38,11 +38,11 @@ "type": "heading", "attrs": { "backgroundColor": "default", "textColor": "default", "textAlignment": "left", - "level": 2, + "level": 1, "isToggleable": false }, "content": [ { "type": "text", Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/slashmenu/slashmenu.test.ts-snapshots/docStructureSnapshot-firefox-linux.json Received: /__w/BlockNote/BlockNote/tests/test-results/slashmenu-slashmenu-Check--f99af-uments-that-match-snapshots-firefox/docStructureSnapshot-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/slashmenu/slashmenu.test.ts:141:5
[firefox] › src/end-to-end/slashmenu/slashmenu.test.ts:42:7 › Check SlashMenu Functionality › Should be able to create h3: tests/src/utils/editor.ts#L11
4) [firefox] › src/end-to-end/slashmenu/slashmenu.test.ts:42:7 › Check SlashMenu Functionality › Should be able to create h3 TimeoutError: locator.waitFor: Timeout 1000ms exceeded. Call log: - waiting for locator('.bn-editor').locator('[data-content-type=heading][data-level="3"]') at ../utils/editor.ts:11 9 | export async function waitForSelectorInEditor(page: Page, selector: string) { 10 | const editor = page.locator(EDITOR_SELECTOR); > 11 | await editor.locator(selector).waitFor({ | ^ 12 | state: "attached", 13 | timeout: 1000, 14 | }); at waitForSelectorInEditor (/__w/BlockNote/BlockNote/tests/src/utils/editor.ts:11:34) at /__w/BlockNote/BlockNote/tests/src/end-to-end/slashmenu/slashmenu.test.ts:46:34
[firefox] › src/end-to-end/slashmenu/slashmenu.test.ts:36:7 › Check SlashMenu Functionality › Should be able to create h2: tests/src/utils/editor.ts#L11
3) [firefox] › src/end-to-end/slashmenu/slashmenu.test.ts:36:7 › Check SlashMenu Functionality › Should be able to create h2 TimeoutError: locator.waitFor: Timeout 1000ms exceeded. Call log: - waiting for locator('.bn-editor').locator('[data-content-type=heading][data-level="2"]') at ../utils/editor.ts:11 9 | export async function waitForSelectorInEditor(page: Page, selector: string) { 10 | const editor = page.locator(EDITOR_SELECTOR); > 11 | await editor.locator(selector).waitFor({ | ^ 12 | state: "attached", 13 | timeout: 1000, 14 | }); at waitForSelectorInEditor (/__w/BlockNote/BlockNote/tests/src/utils/editor.ts:11:34) at /__w/BlockNote/BlockNote/tests/src/end-to-end/slashmenu/slashmenu.test.ts:40:34
[firefox] › src/end-to-end/draghandle/draghandle.test.ts:161:7 › Check Draghandle functionality › Deleting block with children should delete all children: tests/src/end-to-end/draghandle/draghandle.test.ts#L175
2) [firefox] › src/end-to-end/draghandle/draghandle.test.ts:161:7 › Check Draghandle functionality › Deleting block with children should delete all children Error: page.hover: Target page, context or browser has been closed Call log: - waiting for locator('[data-content-type=heading][data-level="2"]') 173 | await page.keyboard.type("This is h3"); 174 | > 175 | await page.hover(H_TWO_BLOCK_SELECTOR); | ^ 176 | await page.click(DRAG_HANDLE_SELECTOR); 177 | await page.click("text=Delete"); 178 | await page.waitForSelector(H_ONE_BLOCK_SELECTOR); at /__w/BlockNote/BlockNote/tests/src/end-to-end/draghandle/draghandle.test.ts:175:16
[firefox] › src/end-to-end/draghandle/draghandle.test.ts:161:7 › Check Draghandle functionality › Deleting block with children should delete all children: tests/src/end-to-end/draghandle/draghandle.test.ts#L0
2) [firefox] › src/end-to-end/draghandle/draghandle.test.ts:161:7 › Check Draghandle functionality › Deleting block with children should delete all children Test timeout of 30000ms exceeded.
[firefox] › src/end-to-end/draghandle/draghandle.test.ts:143:7 › Check Draghandle functionality › Delete button should delete correct block: tests/src/end-to-end/draghandle/draghandle.test.ts#L151
1) [firefox] › src/end-to-end/draghandle/draghandle.test.ts:143:7 › Check Draghandle functionality › Delete button should delete correct block Error: page.hover: Target page, context or browser has been closed Call log: - waiting for locator('[data-content-type=heading][data-level="2"]') 149 | await page.keyboard.type("This is h3"); 150 | > 151 | await page.hover(H_TWO_BLOCK_SELECTOR); | ^ 152 | await page.click(DRAG_HANDLE_SELECTOR); 153 | await page.click("text=Delete"); 154 | await page.waitForSelector(H_ONE_BLOCK_SELECTOR); at /__w/BlockNote/BlockNote/tests/src/end-to-end/draghandle/draghandle.test.ts:151:16
[firefox] › src/end-to-end/draghandle/draghandle.test.ts:143:7 › Check Draghandle functionality › Delete button should delete correct block: tests/src/end-to-end/draghandle/draghandle.test.ts#L0
1) [firefox] › src/end-to-end/draghandle/draghandle.test.ts:143:7 › Check Draghandle functionality › Delete button should delete correct block Test timeout of 30000ms exceeded.
🎭 Playwright Run Summary
1 skipped 94 passed (2.2m)
🎭 Playwright Run Summary
2 flaky [webkit] › src/end-to-end/ariakit/ariakit.test.ts:28:7 › Check Ariakit UI › Check link toolbar ─ [webkit] › src/end-to-end/basics/basicblocks.test.ts:11:7 › Check basic text block appearance › Check basic text block appearance 9 skipped 84 passed (4.2m)
🎭 Playwright Run Summary
5 flaky [firefox] › src/end-to-end/draghandle/draghandle.test.ts:143:7 › Check Draghandle functionality › Delete button should delete correct block [firefox] › src/end-to-end/draghandle/draghandle.test.ts:161:7 › Check Draghandle functionality › Deleting block with children should delete all children [firefox] › src/end-to-end/slashmenu/slashmenu.test.ts:36:7 › Check SlashMenu Functionality › Should be able to create h2 [firefox] › src/end-to-end/slashmenu/slashmenu.test.ts:42:7 › Check SlashMenu Functionality › Should be able to create h3 [firefox] › src/end-to-end/slashmenu/slashmenu.test.ts:117:7 › Check SlashMenu Functionality › Should be able to create complex documents that match snapshots 11 skipped 79 passed (4.1m)

Artifacts

Produced during runtime
Name Size Digest
playwright-report-chromium Expired
263 KB
sha256:1a31a8c7f89e20bc364df125ea14683f1c73de43c8cc7b6470eea9e85a8acb2e
playwright-report-firefox Expired
2.33 MB
sha256:55d7e8c55079eb9bb778955132ad57047ba0b3b3b19e57d76438711c790e34ff
playwright-report-webkit Expired
1.73 MB
sha256:44cdbb67b0a71f521db9bd3a57c174b9aec04b1f5c640e809f0ffbeda5bc7d3e