Skip to content

refactor: support multiple-editors #15050

refactor: support multiple-editors

refactor: support multiple-editors #15050

Triggered via pull request December 28, 2023 19:20
Status Success
Total duration 6m 3s
Artifacts

test.yaml

on: pull_request
Node.js Environment Compatibility
57s
Node.js Environment Compatibility
Unit test
1m 11s
Unit test
Integration test
26s
Integration test
Inline Editor E2E test
47s
Inline Editor E2E test
Matrix: Playground E2E test
Fit to window
Zoom out
Zoom in

Annotations

40 errors and 11 notices
attachment.spec.ts:261:1 › should rename attachment works: tests/attachment.spec.ts#L1
1) attachment.spec.ts:261:1 › should rename attachment works ───────────────────────────────────── Test timeout of 30000ms exceeded.
attachment.spec.ts:261:1 › should rename attachment works: tests/attachment.spec.ts#L95
1) attachment.spec.ts:261:1 › should rename attachment works ───────────────────────────────────── Error: locator.click: Test timeout of 30000ms exceeded. Call log: - waiting for locator('.affine-attachment-options').locator('icon-button').filter({ hasText: 'Rename' }) 93 | await attachment.hover(); 94 | await expect(options).toBeVisible(); > 95 | await renameBtn.click(); | ^ 96 | await page.keyboard.press(`${SHORT_KEY}+a`, { delay: 50 }); 97 | await pressBackspace(page); 98 | await type(page, newName); at rename (/home/runner/work/blocksuite/blocksuite/tests/attachment.spec.ts:95:23) at /home/runner/work/blocksuite/blocksuite/tests/attachment.spec.ts:296:3
clipboard.spec.ts:1016:1 › copy canvas element and text note in edgeless mode: tests/clipboard.spec.ts#L1
1) clipboard.spec.ts:1016:1 › copy canvas element and text note in edgeless mode ───────────────── Test timeout of 30000ms exceeded.
clipboard.spec.ts:1016:1 › copy canvas element and text note in edgeless mode: tests/utils/actions/keyboard.ts#L139
1) clipboard.spec.ts:1016:1 › copy canvas element and text note in edgeless mode ───────────────── Error: keyboard.press: Test timeout of 30000ms exceeded. at utils/actions/keyboard.ts:139 137 | 138 | export async function copyByKeyboard(page: Page) { > 139 | await page.keyboard.press(`${SHORT_KEY}+c`, { delay: 50 }); | ^ 140 | } 141 | 142 | export async function cutByKeyboard(page: Page) { at copyByKeyboard (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/keyboard.ts:139:23) at /home/runner/work/blocksuite/blocksuite/tests/clipboard.spec.ts:1024:9
code.spec.ts:596:1 › press backspace inside should select code block: tests/code.spec.ts#L603
2) code.spec.ts:596:1 › press backspace inside should select code block ────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toHaveCount(expected) Locator: locator('affine-block-selection') Expected: 1 Received: 0 Call log: - expect.toHaveCount with timeout 5000ms - waiting for locator('affine-block-selection') - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" 601 | const selectedRects = page.locator('affine-block-selection'); 602 | await page.keyboard.press('Backspace'); > 603 | await expect(selectedRects).toHaveCount(1); | ^ 604 | await expect(codeBlock).toBeVisible(); 605 | await page.keyboard.press('Backspace'); 606 | await expect(selectedRects).toHaveCount(0); at /home/runner/work/blocksuite/blocksuite/tests/code.spec.ts:603:31
paragraph.spec.ts:143:3 › backspace on line start of the first block (without surface): tests/utils/asserts.ts#L301
1) paragraph.spec.ts:143:3 › backspace on line start of the first block (without surface) ──────── Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 Object { - "index": 0, + "index": 1, "length": 0, } at utils/asserts.ts:301 299 | [richTextIndex, currentEditorIndex] 300 | ); > 301 | expect(actual).toEqual({ index: rangeIndex, length: rangeLength }); | ^ 302 | } 303 | 304 | export async function assertNativeSelectionRangeCount( at assertRichTextInlineRange (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:301:18) at /home/runner/work/blocksuite/blocksuite/tests/paragraph.spec.ts:160:5
selection/block.spec.ts:1385:1 › should un-select blocks when pressing escape: tests/selection/block.spec.ts#L1403
1) selection/block.spec.ts:1385:1 › should un-select blocks when pressing escape ───────────────── Error: Timed out 5000ms waiting for expect(locator).toHaveCount(expected) Locator: locator('.selected,affine-block-selection') Expected: 1 Received: 0 Call log: - expect.toHaveCount with timeout 5000ms - waiting for locator('.selected,affine-block-selection') - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" - locator resolved to 0 elements - unexpected value "0" 1401 | await pressSpace(page); 1402 | await clickListIcon(page, 0); > 1403 | await expect(page.locator('.selected,affine-block-selection')).toHaveCount(1); | ^ 1404 | 1405 | await pressEscape(page); 1406 | await expect(page.locator('.selected,affine-block-selection')).toHaveCount(0); at /home/runner/work/blocksuite/blocksuite/tests/selection/block.spec.ts:1403:66
selection/native.spec.ts:1781:1 › press ArrowUp and ArrowDown in the edge of two line: tests/utils/asserts.ts#L138
1) selection/native.spec.ts:1781:1 › press ArrowUp and ArrowDown in the edge of two line ───────── Error: expect(received).toBe(expected) // Object.is equality Expected: "title" Received: "" at utils/asserts.ts:138 136 | const inlineEditor = editor.locator('.doc-title-container').first(); 137 | const vText = inlineEditorInnerTextToString(await inlineEditor.innerText()); > 138 | expect(vText).toBe(text); | ^ 139 | } 140 | 141 | export async function assertInlineEditorDeltas( at assertTitle (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:138:17) at /home/runner/work/blocksuite/blocksuite/tests/selection/native.spec.ts:1857:3
selection/native.spec.ts:1914:1 › should not scroll page when mouse is click down: tests/utils/asserts.ts#L196
2) selection/native.spec.ts:1914:1 › should not scroll page when mouse is click down ───────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 @@ -6,11 +6,10 @@ "", "", "", "", "", - "", "0 1 2 3 4 @@ -28,6 +27,7 @@ 16 17 18 19 ", + "", ] at utils/asserts.ts:196 194 | }); 195 | }, currentEditorIndex); > 196 | expect(actualTexts).toEqual(texts); | ^ 197 | } 198 | 199 | export async function assertEdgelessCanvasText(page: Page, text: string) { at assertRichTexts (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:196:23) at /home/runner/work/blocksuite/blocksuite/tests/selection/native.spec.ts:1930:3
database/column.spec.ts:398:3 › select column tag action › should support select tag renaming: tests/database/column.spec.ts#L1
1) database/column.spec.ts:398:3 › select column tag action › should support select tag renaming ─ Test finished within timeout of 30000ms, but tearing down "context" ran out of time. Please allow more time for the test, since teardown is attributed towards the test timeout budget.
edgeless/auto-complete.spec.ts:111:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add note: tests/utils/asserts.ts#L196
2) edgeless/auto-complete.spec.ts:111:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add note Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 Array [ - "hello", + "llo", ] at utils/asserts.ts:196 194 | }); 195 | }, currentEditorIndex); > 196 | expect(actualTexts).toEqual(texts); | ^ 197 | } 198 | 199 | export async function assertEdgelessCanvasText(page: Page, text: string) { at assertRichTexts (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:196:23) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:127:7
hotkey.spec.ts:84:1 › type character jump out code node: tests/hotkey.spec.ts#L1
1) hotkey.spec.ts:84:1 › type character jump out code node ─────────────────────────────────────── Test finished within timeout of 30000ms, but tearing down "context" ran out of time. Please allow more time for the test, since teardown is attributed towards the test timeout budget.
hotkey.spec.ts:131:1 › multi line rich-text inline code hotkey: tests/hotkey.spec.ts#L1
2) hotkey.spec.ts:131:1 › multi line rich-text inline code hotkey ──────────────────────────────── Test timeout of 30000ms exceeded.
hotkey.spec.ts:131:1 › multi line rich-text inline code hotkey: tests/utils/actions/drag.ts#L21
2) hotkey.spec.ts:131:1 › multi line rich-text inline code hotkey ──────────────────────────────── Error: mouse.move: Test timeout of 30000ms exceeded. at utils/actions/drag.ts:21 19 | await page.mouse.move(x1, y1); 20 | await page.mouse.down(); > 21 | await page.mouse.move(x2, y2, { steps }); | ^ 22 | await options?.beforeMouseUp?.(); 23 | await page.mouse.up(); 24 | } at dragBetweenCoords (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/drag.ts:21:20) at dragBetweenIndices (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/drag.ts:53:3) at /home/runner/work/blocksuite/blocksuite/tests/hotkey.spec.ts:139:3
hotkey.spec.ts:303:1 › single line rich-text strikethrough hotkey: tests/hotkey.spec.ts#L1
3) hotkey.spec.ts:303:1 › single line rich-text strikethrough hotkey ───────────────────────────── Test finished within timeout of 30000ms, but tearing down "context" ran out of time. Please allow more time for the test, since teardown is attributed towards the test timeout budget.
hotkey.spec.ts:986:1 › should cut work single line: tests/utils/asserts.ts#L621
4) hotkey.spec.ts:986:1 › should cut work single line ──────────────────────────────────────────── Error: <affine:note prop:background="--affine-background-secondary-color" prop:edgeless={ Object { "style": Object { "borderRadius": 8, "borderSize": 4, "borderStyle": "solid", "shadowType": "--affine-note-shadow-box", }, } } prop:hidden={false} prop:index="a0" > <affine:paragraph prop:text="hello" prop:type="text" /> </affine:note> expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 @@ -12,9 +12,9 @@ } prop:hidden={false} prop:index="a0" > <affine:paragraph - prop:text="ho" + prop:text="hello" prop:type="text" /> </affine:note> at utils/asserts.ts:621 619 | printFunctionName: false, 620 | }); > 621 | expect(formattedJSX, formattedJSX).toEqual(snapshot.trimStart()); | ^ 622 | } 623 | 624 | type MimeType = 'text/plain' | 'blocksuite/x-c+w' | 'text/html'; at assertStoreMatchJSX (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:621:38) at /home/runner/work/blocksuite/blocksuite/tests/hotkey.spec.ts:995:3
image.spec.ts:100:1 › can click and copy image: tests/utils/asserts.ts#L217
5) image.spec.ts:100:1 › can click and copy image ──────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality Expected: 2 Received: 1 at utils/asserts.ts:217 215 | const editor = getEditorLocator(page); 216 | const actual = await editor.locator('.resizable-img').count(); > 217 | expect(actual).toEqual(count); | ^ 218 | } 219 | 220 | export async function assertDivider(page: Page, count: number) { at assertRichImage (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:217:18) at /home/runner/work/blocksuite/blocksuite/tests/image.spec.ts:110:3
image.spec.ts:100:1 › can click and copy image: tests/utils/asserts.ts#L217
5) image.spec.ts:100:1 › can click and copy image ──────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality Expected: 2 Received: 1 at utils/asserts.ts:217 215 | const editor = getEditorLocator(page); 216 | const actual = await editor.locator('.resizable-img').count(); > 217 | expect(actual).toEqual(count); | ^ 218 | } 219 | 220 | export async function assertDivider(page: Page, count: number) { at assertRichImage (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:217:18) at /home/runner/work/blocksuite/blocksuite/tests/image.spec.ts:110:3
image.spec.ts:100:1 › can click and copy image: tests/utils/asserts.ts#L217
5) image.spec.ts:100:1 › can click and copy image ──────────────────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality Expected: 2 Received: 1 at utils/asserts.ts:217 215 | const editor = getEditorLocator(page); 216 | const actual = await editor.locator('.resizable-img').count(); > 217 | expect(actual).toEqual(count); | ^ 218 | } 219 | 220 | export async function assertDivider(page: Page, count: number) { at assertRichImage (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:217:18) at /home/runner/work/blocksuite/blocksuite/tests/image.spec.ts:110:3
edgeless/shape.spec.ts:65:3 › add shape › with holding shift key: tests/edgeless/shape.spec.ts#L1
1) edgeless/shape.spec.ts:65:3 › add shape › with holding shift key ────────────────────────────── Test timeout of 30000ms exceeded.
edgeless/shape.spec.ts:65:3 › add shape › with holding shift key: tests/utils/actions/drag.ts#L21
1) edgeless/shape.spec.ts:65:3 › add shape › with holding shift key ────────────────────────────── Error: mouse.move: Test timeout of 30000ms exceeded. at utils/actions/drag.ts:21 19 | await page.mouse.move(x1, y1); 20 | await page.mouse.down(); > 21 | await page.mouse.move(x2, y2, { steps }); | ^ 22 | await options?.beforeMouseUp?.(); 23 | await page.mouse.up(); 24 | } at dragBetweenCoords (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/drag.ts:21:20) at addBasicRectShapeElement (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:347:3) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shape.spec.ts:85:5
edgeless/shape.spec.ts:92:1 › delete shape by component-toolbar: tests/edgeless/shape.spec.ts#L1
2) edgeless/shape.spec.ts:92:1 › delete shape by component-toolbar ─────────────────────────────── Test timeout of 30000ms exceeded.
edgeless/shape.spec.ts:92:1 › delete shape by component-toolbar: tests/utils/actions/edgeless.ts#L578
2) edgeless/shape.spec.ts:92:1 › delete shape by component-toolbar ─────────────────────────────── Error: locator.click: Test timeout of 30000ms exceeded. Call log: - waiting for locator('edgeless-component-toolbar edgeless-tool-icon-button').filter({ hasText: 'More' }) - locator resolved to <edgeless-tool-icon-button>…</edgeless-tool-icon-button> - attempting click action - waiting for element to be visible, enabled and stable at utils/actions/edgeless.ts:578 576 | }); 577 | > 578 | await btn.click(); | ^ 579 | } 580 | 581 | export async function clickComponentToolbarMoreMenuButton( at openComponentToolbarMoreMenu (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:578:13) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shape.spec.ts:102:9
edgeless/shape.spec.ts:131:1 › change shape stroke color: tests/edgeless/shape.spec.ts#L1
3) edgeless/shape.spec.ts:131:1 › change shape stroke color ────────────────────────────────────── Test finished within timeout of 30000ms, but tearing down "context" ran out of time. Please allow more time for the test, since teardown is attributed towards the test timeout budget.
format-bar.spec.ts:309:1 › should format quick bar be able to change background color: tests/format-bar.spec.ts#L428
4) format-bar.spec.ts:309:1 › should format quick bar be able to change background color ───────── Error: locator.click: Timeout 5000ms exceeded. Call log: - waiting for locator('.affine-format-bar-widget').getByTestId('unset') - locator resolved to <icon-button width="100%" tabindex="0" height="32px" data-tes…>…</icon-button> - attempting click action - waiting for element to be visible, enabled and stable - element is not visible - waiting... 426 | 427 | await expect(highlight.defaultColorBtn).toBeVisible(); > 428 | await highlight.defaultColorBtn.click(); | ^ 429 | 430 | await assertStoreMatchJSX( 431 | page, at /home/runner/work/blocksuite/blocksuite/tests/format-bar.spec.ts:428:35
edgeless/basic.spec.ts:67:1 › can zoom viewport: tests/edgeless/basic.spec.ts#L1
1) edgeless/basic.spec.ts:67:1 › can zoom viewport ─────────────────────────────────────────────── Test timeout of 30000ms exceeded.
edgeless/basic.spec.ts:67:1 › can zoom viewport: tests/utils/actions/edgeless.ts#L314
1) edgeless/basic.spec.ts:67:1 › can zoom viewport ─────────────────────────────────────────────── Error: locator.click: Test timeout of 30000ms exceeded. Call log: - waiting for locator('.edgeless-zoom-toolbar-container.vertical edgeless-tool-icon-button').filter({ hasText: 'Zoom out' }) at utils/actions/edgeless.ts:314 312 | export async function decreaseZoomLevel(page: Page) { 313 | const btn = await locatorEdgelessZoomToolButton(page, 'zoomOut', false); > 314 | await btn.click(); | ^ 315 | await sleep(AWAIT_TIMEOUT); 316 | } 317 | at decreaseZoomLevel (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:314:13) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/basic.spec.ts:81:3
edgeless/basic.spec.ts:97:1 › zoom by mouse: tests/edgeless/basic.spec.ts#L1
2) edgeless/basic.spec.ts:97:1 › zoom by mouse ─────────────────────────────────────────────────── Test timeout of 30000ms exceeded.
edgeless/basic.spec.ts:97:1 › zoom by mouse: tests/edgeless/basic.spec.ts#L107
2) edgeless/basic.spec.ts:97:1 › zoom by mouse ─────────────────────────────────────────────────── Error: mouse.click: Test timeout of 30000ms exceeded. 105 | await assertNoteXYWH(page, [0, 0, NOTE_WIDTH, 91]); 106 | > 107 | await page.mouse.click(CENTER_X, CENTER_Y); | ^ 108 | const original = [80, 402.5, NOTE_WIDTH, 91]; 109 | await assertEdgelessSelectedRect(page, original); 110 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/basic.spec.ts:107:20
edgeless/basic.spec.ts:118:1 › option/alt mouse drag duplicate a new element: tests/edgeless/basic.spec.ts#L1
3) edgeless/basic.spec.ts:118:1 › option/alt mouse drag duplicate a new element ────────────────── Test timeout of 30000ms exceeded.
edgeless/basic.spec.ts:118:1 › option/alt mouse drag duplicate a new element: tests/utils/actions/edgeless.ts#L261
3) edgeless/basic.spec.ts:118:1 › option/alt mouse drag duplicate a new element ────────────────── Error: locator.click: Test timeout of 30000ms exceeded. Call log: - waiting for locator('edgeless-toolbar edgeless-toolbar-button.edgeless-shape-button') - locator resolved to <edgeless-toolbar-button class="edgeless-shape-button">…</edgeless-toolbar-button> - attempting click action - waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling at utils/actions/edgeless.ts:261 259 | case 'shape': { 260 | const shapeToolButton = locatorEdgelessToolButton(page, 'shape', false); > 261 | await shapeToolButton.click(); | ^ 262 | 263 | const squareShapeButton = page 264 | .locator('edgeless-tool-icon-button') at setEdgelessTool (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:261:29) at addBasicShapeElement (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:356:9) at createShapeElement (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:1229:9) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/basic.spec.ts:127:3
edgeless/group.spec.ts:270:5 › group › release from group › release group from group: tests/edgeless/group.spec.ts#L233
1) edgeless/group.spec.ts:270:5 › group › release from group › release group from group ────────── Test timeout of 30000ms exceeded while running "beforeEach" hook. 231 | 232 | test.describe('release from group', () => { > 233 | test.beforeEach(async ({ page }) => { | ^ 234 | await init(page); 235 | await createShapeElement(page, [200, 0], [300, 100], Shape.Square); 236 | await selectAllByKeyboard(page); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:233:10
edgeless/group.spec.ts:270:5 › group › release from group › release group from group: tests/utils/actions/edgeless.ts#L266
1) edgeless/group.spec.ts:270:5 › group › release from group › release group from group ────────── Error: locator.click: Test timeout of 30000ms exceeded. Call log: - waiting for locator('edgeless-tool-icon-button').filter({ hasText: 'Square' }) - locator resolved to <edgeless-tool-icon-button>…</edgeless-tool-icon-button> - attempting click action - waiting for element to be visible, enabled and stable - element is not stable - waiting... - element is visible, enabled and stable - scrolling into view if needed at utils/actions/edgeless.ts:266 264 | .locator('edgeless-tool-icon-button') 265 | .filter({ hasText: shape }); > 266 | await squareShapeButton.click(); | ^ 267 | break; 268 | } 269 | } at setEdgelessTool (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:266:31) at addBasicShapeElement (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:356:3) at createShapeElement (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:1229:3) at init (/home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:42:5) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:234:7
edgeless/group.spec.ts:327:5 › group › delete › delete root group: tests/edgeless/group.spec.ts#L323
2) edgeless/group.spec.ts:327:5 › group › delete › delete root group ───────────────────────────── Test timeout of 30000ms exceeded while running "beforeEach" hook. 321 | 322 | test.describe('delete', () => { > 323 | test.beforeEach(async ({ page }) => { | ^ 324 | await init(page); 325 | }); 326 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:323:10
edgeless/group.spec.ts:327:5 › group › delete › delete root group: tests/utils/actions/drag.ts#L21
2) edgeless/group.spec.ts:327:5 › group › delete › delete root group ───────────────────────────── Error: mouse.move: Test timeout of 30000ms exceeded. at utils/actions/drag.ts:21 19 | await page.mouse.move(x1, y1); 20 | await page.mouse.down(); > 21 | await page.mouse.move(x2, y2, { steps }); | ^ 22 | await options?.beforeMouseUp?.(); 23 | await page.mouse.up(); 24 | } at dragBetweenCoords (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/drag.ts:21:20) at addBasicShapeElement (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:357:3) at createShapeElement (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:1229:3) at init (/home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:42:5) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:324:7
edgeless/group.spec.ts:344:5 › group › delete › delete sub-element in group: tests/edgeless/group.spec.ts#L323
3) edgeless/group.spec.ts:344:5 › group › delete › delete sub-element in group ─────────────────── Test timeout of 30000ms exceeded while running "beforeEach" hook. 321 | 322 | test.describe('delete', () => { > 323 | test.beforeEach(async ({ page }) => { | ^ 324 | await init(page); 325 | }); 326 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:323:10
edgeless/group.spec.ts:344:5 › group › delete › delete sub-element in group: tests/utils/actions/edgeless.ts#L266
3) edgeless/group.spec.ts:344:5 › group › delete › delete sub-element in group ─────────────────── Error: locator.click: Test timeout of 30000ms exceeded. Call log: - waiting for locator('edgeless-tool-icon-button').filter({ hasText: 'Square' }) - locator resolved to <edgeless-tool-icon-button>…</edgeless-tool-icon-button> - attempting click action - waiting for element to be visible, enabled and stable - element is not stable - waiting... - element is visible, enabled and stable - scrolling into view if needed - done scrolling at utils/actions/edgeless.ts:266 264 | .locator('edgeless-tool-icon-button') 265 | .filter({ hasText: shape }); > 266 | await squareShapeButton.click(); | ^ 267 | break; 268 | } 269 | } at setEdgelessTool (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:266:31) at addBasicShapeElement (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:356:3) at createShapeElement (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:1229:3) at init (/home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:42:5) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:324:7
edgeless/note.spec.ts:127:1 › resize note then auto size and custom size: tests/utils/asserts.ts#L771
4) edgeless/note.spec.ts:127:1 › resize note then auto size and custom size ────────────────────── Error: expect(received).toBeCloseTo(expected, precision) Expected: 91 Received: 95 Expected precision: 0 Expected difference: < 0.5 Received difference: 4 at utils/asserts.ts:771 769 | expect(a.y).toBeCloseTo(b.y, 0); 770 | expect(a.w).toBeCloseTo(b.w, 0); > 771 | expect(a.h).toBeCloseTo(b.h, 0); | ^ 772 | } 773 | 774 | export function assertDOMRectEqual(a: DOMRect, b: DOMRect) { at assertRectEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:771:15) at assertNoteRectEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:764:3) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/note.spec.ts:172:3
edgeless/note.spec.ts:127:1 › resize note then auto size and custom size: tests/utils/asserts.ts#L771
4) edgeless/note.spec.ts:127:1 › resize note then auto size and custom size ────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBeCloseTo(expected, precision) Expected: 191 Received: 91 Expected precision: 0 Expected difference: < 0.5 Received difference: 100 at utils/asserts.ts:771 769 | expect(a.y).toBeCloseTo(b.y, 0); 770 | expect(a.w).toBeCloseTo(b.w, 0); > 771 | expect(a.h).toBeCloseTo(b.h, 0); | ^ 772 | } 773 | 774 | export function assertDOMRectEqual(a: DOMRect, b: DOMRect) { at assertRectEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:771:15) at assertNoteRectEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:764:3) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/note.spec.ts:176:3
edgeless/note.spec.ts:355:1 › drag handle should work across multiple notes: tests/edgeless/note.spec.ts#L381
5) edgeless/note.spec.ts:355:1 › drag handle should work across multiple notes ─────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeHidden() Locator: locator('.affine-drag-handle-container') Expected: hidden Received: visible Call log: - expect.toBeHidden with timeout 5000ms - waiting for locator('.affine-drag-handle-container') - locator resolved to <div class="affine-drag-handle-container">…</div> - unexpected value "visible" - locator resolved to <div class="affine-drag-handle-container">…</div> - unexpected value "visible" - locator resolved to <div class="affine-drag-handle-container">…</div> - unexpected value "visible" - locator resolved to <div class="affine-drag-handle-container">…</div> - unexpected value "visible" - locator resolved to <div class="affine-drag-handle-container">…</div> - unexpected value "visible" - locator resolved to <div class="affine-drag-handle-container">…</div> - unexpected value "visible" - locator resolved to <div class="affine-drag-handle-container">…</div> - unexpected value "visible" - locator resolved to <div class="affine-drag-handle-container">…</div> - unexpected value "visible" - locator resolved to <div class="affine-drag-handle-container">…</div> - unexpected value "visible" 379 | await dragHandleFromBlockToBlockBottomById(page, '3', '4'); 380 | await waitNextFrame(page); > 381 | await expect(page.locator('.affine-drag-handle-container')).toBeHidden(); | ^ 382 | await assertRichTexts(page, ['456', '123', '789', '000']); 383 | 384 | await expect(page.locator('selected > *')).toHaveCount(0); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/note.spec.ts:381:63
🎭 Playwright Run Summary
12 passed (22.6s)
🎭 Playwright Run Summary
1 flaky attachment.spec.ts:261:1 › should rename attachment works ────────────────────────────────────── 16 skipped 48 passed (2.6m)
🎭 Playwright Run Summary
2 flaky clipboard.spec.ts:1016:1 › copy canvas element and text note in edgeless mode ────────────────── code.spec.ts:596:1 › press backspace inside should select code block ─────────────────────────── 7 skipped 55 passed (3.0m)
🎭 Playwright Run Summary
1 flaky paragraph.spec.ts:143:3 › backspace on line start of the first block (without surface) ───────── 63 passed (3.0m)
🎭 Playwright Run Summary
1 flaky selection/block.spec.ts:1385:1 › should un-select blocks when pressing escape ────────────────── 1 skipped 62 passed (3.2m)
🎭 Playwright Run Summary
2 flaky selection/native.spec.ts:1781:1 › press ArrowUp and ArrowDown in the edge of two line ────────── selection/native.spec.ts:1914:1 › should not scroll page when mouse is click down ────────────── 2 skipped 60 passed (3.2m)
🎭 Playwright Run Summary
2 flaky database/column.spec.ts:398:3 › select column tag action › should support select tag renaming ── edgeless/auto-complete.spec.ts:111:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add note 62 passed (3.5m)
🎭 Playwright Run Summary
5 flaky hotkey.spec.ts:84:1 › type character jump out code node ──────────────────────────────────────── hotkey.spec.ts:131:1 › multi line rich-text inline code hotkey ───────────────────────────────── hotkey.spec.ts:303:1 › single line rich-text strikethrough hotkey ────────────────────────────── hotkey.spec.ts:986:1 › should cut work single line ───────────────────────────────────────────── image.spec.ts:100:1 › can click and copy image ───────────────────────────────────────────────── 5 skipped 54 passed (3.6m)
🎭 Playwright Run Summary
4 flaky edgeless/shape.spec.ts:65:3 › add shape › with holding shift key ─────────────────────────────── edgeless/shape.spec.ts:92:1 › delete shape by component-toolbar ──────────────────────────────── edgeless/shape.spec.ts:131:1 › change shape stroke color ─────────────────────────────────────── format-bar.spec.ts:309:1 › should format quick bar be able to change background color ────────── 1 skipped 59 passed (3.7m)
🎭 Playwright Run Summary
3 flaky edgeless/basic.spec.ts:67:1 › can zoom viewport ──────────────────────────────────────────────── edgeless/basic.spec.ts:97:1 › zoom by mouse ──────────────────────────────────────────────────── edgeless/basic.spec.ts:118:1 › option/alt mouse drag duplicate a new element ─────────────────── 3 skipped 58 passed (4.5m)
🎭 Playwright Run Summary
5 flaky edgeless/group.spec.ts:270:5 › group › release from group › release group from group ─────────── edgeless/group.spec.ts:327:5 › group › delete › delete root group ────────────────────────────── edgeless/group.spec.ts:344:5 › group › delete › delete sub-element in group ──────────────────── edgeless/note.spec.ts:127:1 › resize note then auto size and custom size ─────────────────────── edgeless/note.spec.ts:355:1 › drag handle should work across multiple notes ──────────────────── 59 passed (4.9m)