Skip to content

refactor: support multiple-editors #15037

refactor: support multiple-editors

refactor: support multiple-editors #15037

Triggered via pull request December 28, 2023 12:30
Status Failure
Total duration 11m 35s
Artifacts 1

test.yaml

on: pull_request
Node.js Environment Compatibility
52s
Node.js Environment Compatibility
Unit test
1m 23s
Unit test
Integration test
31s
Integration test
Inline Editor E2E test
45s
Inline Editor E2E test
Matrix: Playground E2E test
Fit to window
Zoom out
Zoom in

Annotations

77 errors, 8 warnings, and 11 notices
code.spec.ts:253:1 › change code language can work: tests/utils/asserts.ts#L621
1) code.spec.ts:253:1 › change code language can work ──────────────────────────────────────────── Error: <affine:code prop:language="rust" /> expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 <affine:code - prop:language="Plain Text" + prop:language="rust" /> 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/code.spec.ts:278:3
code.spec.ts:253:1 › change code language can work: tests/utils/asserts.ts#L621
1) code.spec.ts:253:1 › change code language can work ──────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: <affine:code prop:language="rust" /> expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 <affine:code - prop:language="Plain Text" + prop:language="rust" /> 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/code.spec.ts:278:3
code.spec.ts:253:1 › change code language can work: tests/utils/asserts.ts#L621
1) code.spec.ts:253:1 › change code language can work ──────────────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: <affine:code prop:language="rust" /> expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 <affine:code - prop:language="Plain Text" + prop:language="rust" /> 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/code.spec.ts:278:3
code.spec.ts:253:1 › change code language can work: tests/utils/asserts.ts#L621
1) code.spec.ts:253:1 › change code language can work ──────────────────────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: <affine:code prop:language="rust" /> expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 <affine:code - prop:language="Plain Text" + prop:language="rust" /> 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/code.spec.ts:278:3
clipboard.spec.ts:1016:1 › copy canvas element and text note in edgeless mode: tests/clipboard.spec.ts#L1
2) 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#L159
2) 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:159 157 | } 158 | > 159 | await page.keyboard.press(`${SHORT_KEY}+v`, { delay: 50 }); | ^ 160 | } 161 | 162 | export async function createCodeBlock(page: Page) { at pasteByKeyboard (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/keyboard.ts:159:23) at /home/runner/work/blocksuite/blocksuite/tests/clipboard.spec.ts:1031:9
Playground E2E test (2)
Process completed with exit code 1.
basic.spec.ts:312:1 › should undo/redo works on title: tests/utils/asserts.ts#L196
1) basic.spec.ts:312:1 › should undo/redo works on title ───────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 Array [ - "hello ", + "hello world", ] 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/basic.spec.ts:341:3
basic.spec.ts:312:1 › should undo/redo works on title: tests/utils/asserts.ts#L196
1) basic.spec.ts:312:1 › should undo/redo works on title ───────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 Array [ - "hello ", + "hello world", ] 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/basic.spec.ts:341:3
basic.spec.ts:312:1 › should undo/redo works on title: tests/utils/asserts.ts#L196
1) basic.spec.ts:312:1 › should undo/redo works on title ───────────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 Array [ - "hello ", + "hello world", ] 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/basic.spec.ts:341:3
basic.spec.ts:312:1 › should undo/redo works on title: tests/utils/asserts.ts#L196
1) basic.spec.ts:312:1 › should undo/redo works on title ───────────────────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 Array [ - "hello ", + "hello world", ] 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/basic.spec.ts:341:3
basic.spec.ts:349:1 › should undo/redo cursor works on title: tests/utils/asserts.ts#L138
2) basic.spec.ts:349:1 › should undo/redo cursor works on title ────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "title23" Received: "title4" 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/basic.spec.ts:380:3
basic.spec.ts:349:1 › should undo/redo cursor works on title: tests/utils/asserts.ts#L138
2) basic.spec.ts:349:1 › should undo/redo cursor works on title ────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "title23" Received: "title4" 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/basic.spec.ts:380:3
basic.spec.ts:349:1 › should undo/redo cursor works on title: tests/utils/asserts.ts#L138
2) basic.spec.ts:349:1 › should undo/redo cursor works on title ────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "title23" Received: "title4" 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/basic.spec.ts:380:3
basic.spec.ts:349:1 › should undo/redo cursor works on title: tests/utils/asserts.ts#L138
2) basic.spec.ts:349:1 › should undo/redo cursor works on title ────────────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "title23" Received: "title4" 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/basic.spec.ts:380:3
attachment.spec.ts:261:1 › should rename attachment works: tests/attachment.spec.ts#L1
3) 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#L93
3) attachment.spec.ts:261:1 › should rename attachment works ───────────────────────────────────── Error: locator.hover: Test timeout of 30000ms exceeded. Call log: - waiting for locator('affine-attachment') - locator resolved to <affine-attachment class="" data-block-id="3">…</affine-attachment> - attempting hover action - waiting for element to be visible and stable - element is visible and stable - scrolling into view if needed - done scrolling - performing hover action 91 | }, 92 | rename: async (newName: string) => { > 93 | await attachment.hover(); | ^ 94 | await expect(options).toBeVisible(); 95 | await renameBtn.click(); 96 | await page.keyboard.press(`${SHORT_KEY}+a`, { delay: 50 }); at rename (/home/runner/work/blocksuite/blocksuite/tests/attachment.spec.ts:93:24) at /home/runner/work/blocksuite/blocksuite/tests/attachment.spec.ts:296:9
paragraph.spec.ts:107:1 › backspace and arrow on title: tests/utils/asserts.ts#L138
1) paragraph.spec.ts:107:1 › backspace and arrow on title ──────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "hll" Received: "hello" 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/paragraph.spec.ts:130:3
paragraph.spec.ts:107:1 › backspace and arrow on title: tests/utils/asserts.ts#L138
1) paragraph.spec.ts:107:1 › backspace and arrow on title ──────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "hll" Received: "hello" 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/paragraph.spec.ts:130:3
paragraph.spec.ts:107:1 › backspace and arrow on title: tests/utils/asserts.ts#L138
1) paragraph.spec.ts:107:1 › backspace and arrow on title ──────────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "hll" Received: "hello" 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/paragraph.spec.ts:130:3
paragraph.spec.ts:107:1 › backspace and arrow on title: tests/utils/asserts.ts#L138
1) paragraph.spec.ts:107:1 › backspace and arrow on title ──────────────────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "hll" Received: "hello" 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/paragraph.spec.ts:130:3
list.spec.ts:54:1 › add new toggle list: tests/list.spec.ts#L1
2) list.spec.ts:54:1 › add new toggle list ─────────────────────────────────────────────────────── 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.
list.spec.ts:71:1 › convert to numbered list block: tests/list.spec.ts#L1
3) list.spec.ts:71:1 › convert to numbered list block ──────────────────────────────────────────── 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.
Playground E2E test (8)
Process completed with exit code 1.
hotkey.spec.ts:986:1 › should cut work single line: tests/utils/asserts.ts#L621
1) 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
2) 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
2) 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
2) 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
slash-menu.spec.ts:769:1 › delete block by slash menu should remove children: tests/utils/asserts.ts#L196
1) slash-menu.spec.ts:769:1 › delete block by slash menu should remove children ────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 0 Array [ "123", - "456", - "789", ] 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/slash-menu.spec.ts:814:3
slash-menu.spec.ts:769:1 › delete block by slash menu should remove children: tests/utils/asserts.ts#L196
1) slash-menu.spec.ts:769:1 › delete block by slash menu should remove children ────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 0 Array [ "123", - "456", - "789", ] 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/slash-menu.spec.ts:814:3
slash-menu.spec.ts:769:1 › delete block by slash menu should remove children: tests/utils/asserts.ts#L196
1) slash-menu.spec.ts:769:1 › delete block by slash menu should remove children ────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 0 Array [ "123", - "456", - "789", ] 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/slash-menu.spec.ts:814:3
slash-menu.spec.ts:769:1 › delete block by slash menu should remove children: tests/utils/asserts.ts#L196
1) slash-menu.spec.ts:769:1 › delete block by slash menu should remove children ────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 0 Array [ "123", - "456", - "789", ] 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/slash-menu.spec.ts:814:3
selection/native.spec.ts:898:1 › Change title when first content is divider: tests/selection/native.spec.ts#L1
2) selection/native.spec.ts:898:1 › Change title when first content is divider ─────────────────── 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.
slash-menu.spec.ts:341:3 › slash search › should slash menu search and keyboard works: tests/slash-menu.spec.ts#L383
3) slash-menu.spec.ts:341:3 › slash search › should slash menu search and keyboard works ───────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.slash-menu') Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.slash-menu') 381 | 382 | await type(page, '/'); > 383 | await expect(slashMenu).toBeVisible(); | ^ 384 | // first item should be selected by default 385 | await expect(slashItems.first()).toHaveAttribute('hover', 'true'); 386 | at /home/runner/work/blocksuite/blocksuite/tests/slash-menu.spec.ts:383:29
slash-menu.spec.ts:341:3 › slash search › should slash menu search and keyboard works: tests/slash-menu.spec.ts#L383
3) slash-menu.spec.ts:341:3 › slash search › should slash menu search and keyboard works ───────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.slash-menu') Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.slash-menu') 381 | 382 | await type(page, '/'); > 383 | await expect(slashMenu).toBeVisible(); | ^ 384 | // first item should be selected by default 385 | await expect(slashItems.first()).toHaveAttribute('hover', 'true'); 386 | at /home/runner/work/blocksuite/blocksuite/tests/slash-menu.spec.ts:383:29
Playground E2E test (10)
Process completed with exit code 1.
selection/native.spec.ts:514:1 › cursor move up and down through note: tests/selection/native.spec.ts#L523
1) selection/native.spec.ts:514:1 › cursor move up and down through note ───────────────────────── Error: expect(received).not.toBe(expected) // Object.is equality Expected: not "2" 521 | await pressArrowDown(page); 522 | currentId = (await getCursorBlockIdAndHeight(page))[0]; > 523 | expect(id).not.toBe(currentId); | ^ 524 | await pressArrowUp(page); 525 | currentId = (await getCursorBlockIdAndHeight(page))[0]; 526 | expect(id).toBe(currentId); at /home/runner/work/blocksuite/blocksuite/tests/selection/native.spec.ts:523:18
edgeless/shortcut.spec.ts:102:3 › zooming › zoom out: tests/edgeless/shortcut.spec.ts#L111
1) edgeless/shortcut.spec.ts:102:3 › zooming › zoom out ────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: 75 Received: 100 109 | 110 | let zoom = await getZoomLevel(page); > 111 | expect(zoom).toBe(75); | ^ 112 | 113 | await zoomOutByKeyboard(page); 114 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:111:18
edgeless/shortcut.spec.ts:102:3 › zooming › zoom out: tests/edgeless/shortcut.spec.ts#L111
1) edgeless/shortcut.spec.ts:102:3 › zooming › zoom out ────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: 75 Received: 100 109 | 110 | let zoom = await getZoomLevel(page); > 111 | expect(zoom).toBe(75); | ^ 112 | 113 | await zoomOutByKeyboard(page); 114 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:111:18
edgeless/shortcut.spec.ts:102:3 › zooming › zoom out: tests/edgeless/shortcut.spec.ts#L111
1) edgeless/shortcut.spec.ts:102:3 › zooming › zoom out ────────────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: 75 Received: 100 109 | 110 | let zoom = await getZoomLevel(page); > 111 | expect(zoom).toBe(75); | ^ 112 | 113 | await zoomOutByKeyboard(page); 114 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:111:18
edgeless/shortcut.spec.ts:102:3 › zooming › zoom out: tests/edgeless/shortcut.spec.ts#L111
1) edgeless/shortcut.spec.ts:102:3 › zooming › zoom out ────────────────────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: 75 Received: 100 109 | 110 | let zoom = await getZoomLevel(page); > 111 | expect(zoom).toBe(75); | ^ 112 | 113 | await zoomOutByKeyboard(page); 114 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:111:18
edgeless/shortcut.spec.ts:136:3 › zooming › zoom in: tests/edgeless/shortcut.spec.ts#L145
2) edgeless/shortcut.spec.ts:136:3 › zooming › zoom in ─────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: 125 Received: 100 143 | 144 | let zoom = await getZoomLevel(page); > 145 | expect(zoom).toBe(125); | ^ 146 | 147 | await zoomInByKeyboard(page); 148 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:145:18
edgeless/shortcut.spec.ts:136:3 › zooming › zoom in: tests/edgeless/shortcut.spec.ts#L145
2) edgeless/shortcut.spec.ts:136:3 › zooming › zoom in ─────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: 125 Received: 100 143 | 144 | let zoom = await getZoomLevel(page); > 145 | expect(zoom).toBe(125); | ^ 146 | 147 | await zoomInByKeyboard(page); 148 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:145:18
edgeless/shortcut.spec.ts:136:3 › zooming › zoom in: tests/edgeless/shortcut.spec.ts#L145
2) edgeless/shortcut.spec.ts:136:3 › zooming › zoom in ─────────────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: 125 Received: 100 143 | 144 | let zoom = await getZoomLevel(page); > 145 | expect(zoom).toBe(125); | ^ 146 | 147 | await zoomInByKeyboard(page); 148 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:145:18
edgeless/shortcut.spec.ts:136:3 › zooming › zoom in: tests/edgeless/shortcut.spec.ts#L145
2) edgeless/shortcut.spec.ts:136:3 › zooming › zoom in ─────────────────────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: 125 Received: 100 143 | 144 | let zoom = await getZoomLevel(page); > 145 | expect(zoom).toBe(125); | ^ 146 | 147 | await zoomInByKeyboard(page); 148 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:145:18
edgeless/shortcut.spec.ts:154:1 › cmd + A should select all elements by default: tests/utils/asserts.ts#L805
3) edgeless/shortcut.spec.ts:154:1 › cmd + A should select all elements by default ─────────────── Error: expect(received).toBeCloseTo(expected, precision) Expected: 200 Received: 800 Expected precision: 0 Expected difference: < 0.5 Received difference: 600 at utils/asserts.ts:805 803 | expect(box[0]).toBeCloseTo(x, 0); 804 | expect(box[1]).toBeCloseTo(y, 0); > 805 | expect(box[2]).toBeCloseTo(w, 0); | ^ 806 | expect(box[3]).toBeCloseTo(h, 0); 807 | } 808 | at assertEdgelessSelectedRectModel (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:805:18) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:159:3
edgeless/shortcut.spec.ts:154:1 › cmd + A should select all elements by default: tests/utils/asserts.ts#L805
3) edgeless/shortcut.spec.ts:154:1 › cmd + A should select all elements by default ─────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBeCloseTo(expected, precision) Expected: 200 Received: 800 Expected precision: 0 Expected difference: < 0.5 Received difference: 600 at utils/asserts.ts:805 803 | expect(box[0]).toBeCloseTo(x, 0); 804 | expect(box[1]).toBeCloseTo(y, 0); > 805 | expect(box[2]).toBeCloseTo(w, 0); | ^ 806 | expect(box[3]).toBeCloseTo(h, 0); 807 | } 808 | at assertEdgelessSelectedRectModel (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:805:18) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:159:3
edgeless/auto-complete.spec.ts:78:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add shape: tests/edgeless/auto-complete.spec.ts#L87
1) edgeless/auto-complete.spec.ts:78:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add shape Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'ellipse' }) Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'ellipse' }) 85 | 86 | const ellipseButton = getAutoCompletePanelButton(page, 'ellipse'); > 87 | await expect(ellipseButton).toBeVisible(); | ^ 88 | await ellipseButton.click(); 89 | 90 | await assertSelectedBound(page, [200, -50, 100, 100]); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:87:35
edgeless/auto-complete.spec.ts:78:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add shape: tests/edgeless/auto-complete.spec.ts#L87
1) edgeless/auto-complete.spec.ts:78:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add shape Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'ellipse' }) Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'ellipse' }) 85 | 86 | const ellipseButton = getAutoCompletePanelButton(page, 'ellipse'); > 87 | await expect(ellipseButton).toBeVisible(); | ^ 88 | await ellipseButton.click(); 89 | 90 | await assertSelectedBound(page, [200, -50, 100, 100]); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:87:35
edgeless/auto-complete.spec.ts:78:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add shape: tests/edgeless/auto-complete.spec.ts#L87
1) edgeless/auto-complete.spec.ts:78:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add shape Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'ellipse' }) Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'ellipse' }) 85 | 86 | const ellipseButton = getAutoCompletePanelButton(page, 'ellipse'); > 87 | await expect(ellipseButton).toBeVisible(); | ^ 88 | await ellipseButton.click(); 89 | 90 | await assertSelectedBound(page, [200, -50, 100, 100]); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:87:35
edgeless/auto-complete.spec.ts:78:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add shape: tests/edgeless/auto-complete.spec.ts#L87
1) edgeless/auto-complete.spec.ts:78:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add shape Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'ellipse' }) Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'ellipse' }) 85 | 86 | const ellipseButton = getAutoCompletePanelButton(page, 'ellipse'); > 87 | await expect(ellipseButton).toBeVisible(); | ^ 88 | await ellipseButton.click(); 89 | 90 | await assertSelectedBound(page, [200, -50, 100, 100]); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:87:35
edgeless/auto-complete.spec.ts:93:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add canvas text: tests/edgeless/auto-complete.spec.ts#L102
2) edgeless/auto-complete.spec.ts:93:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add canvas text Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'text' }) Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'text' }) 100 | 101 | const canvasTextButton = getAutoCompletePanelButton(page, 'text'); > 102 | await expect(canvasTextButton).toBeVisible(); | ^ 103 | await canvasTextButton.click(); 104 | 105 | await waitForInlineEditorStateUpdated(page); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:102:38
edgeless/auto-complete.spec.ts:93:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add canvas text: tests/edgeless/auto-complete.spec.ts#L102
2) edgeless/auto-complete.spec.ts:93:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add canvas text Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'text' }) Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'text' }) 100 | 101 | const canvasTextButton = getAutoCompletePanelButton(page, 'text'); > 102 | await expect(canvasTextButton).toBeVisible(); | ^ 103 | await canvasTextButton.click(); 104 | 105 | await waitForInlineEditorStateUpdated(page); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:102:38
edgeless/auto-complete.spec.ts:93:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add canvas text: tests/edgeless/auto-complete.spec.ts#L102
2) edgeless/auto-complete.spec.ts:93:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add canvas text Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'text' }) Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'text' }) 100 | 101 | const canvasTextButton = getAutoCompletePanelButton(page, 'text'); > 102 | await expect(canvasTextButton).toBeVisible(); | ^ 103 | await canvasTextButton.click(); 104 | 105 | await waitForInlineEditorStateUpdated(page); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:102:38
edgeless/auto-complete.spec.ts:93:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add canvas text: tests/edgeless/auto-complete.spec.ts#L102
2) edgeless/auto-complete.spec.ts:93:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add canvas text Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'text' }) Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'text' }) 100 | 101 | const canvasTextButton = getAutoCompletePanelButton(page, 'text'); > 102 | await expect(canvasTextButton).toBeVisible(); | ^ 103 | await canvasTextButton.click(); 104 | 105 | await waitForInlineEditorStateUpdated(page); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:102:38
edgeless/auto-complete.spec.ts:111:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add note: tests/edgeless/auto-complete.spec.ts#L118
3) edgeless/auto-complete.spec.ts:111:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add note Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'note' }) Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'note' }) 116 | 117 | const noteButton = getAutoCompletePanelButton(page, 'note'); > 118 | await expect(noteButton).toBeVisible(); | ^ 119 | await noteButton.click(); 120 | await waitNextFrame(page); 121 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:118:32
edgeless/auto-complete.spec.ts:111:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add note: tests/edgeless/auto-complete.spec.ts#L118
3) edgeless/auto-complete.spec.ts:111:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add note Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'note' }) Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.auto-complete-panel-container').locator('edgeless-tool-icon-button').filter({ hasText: 'note' }) 116 | 117 | const noteButton = getAutoCompletePanelButton(page, 'note'); > 118 | await expect(noteButton).toBeVisible(); | ^ 119 | await noteButton.click(); 120 | await waitNextFrame(page); 121 | at /home/runner/work/blocksuite/blocksuite/tests/edgeless/auto-complete.spec.ts:118:32
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/drag.ts#L21
1) edgeless/group.spec.ts:270:5 › group › release from group › release group from 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:43:5) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:234:7
edgeless/group.spec.ts:270:5 › group › release from group › release group from group: tests/utils/asserts.ts#L937
1) edgeless/group.spec.ts:270:5 › group › release from group › release group from group ────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 Array [ "q5DwevZAAs", + "2", "zUJd1Rnu80", ] at utils/asserts.ts:937 935 | ) { 936 | const ids = await getGroupChildrenIds(page, index); > 937 | expect(ids).toEqual(expected); | ^ 938 | } 939 | 940 | export async function assertCanvasElementsCount(page: Page, expected: number) { at assertGroupChildrenIds (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:937:15) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:284:7
edgeless/group.spec.ts:270:5 › group › release from group › release group from group: tests/utils/asserts.ts#L937
1) edgeless/group.spec.ts:270:5 › group › release from group › release group from group ────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 Array [ "ssPOkrclWe", + "2", "_XnJGMjnUy", ] at utils/asserts.ts:937 935 | ) { 936 | const ids = await getGroupChildrenIds(page, index); > 937 | expect(ids).toEqual(expected); | ^ 938 | } 939 | 940 | export async function assertCanvasElementsCount(page: Page, expected: number) { at assertGroupChildrenIds (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:937:15) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:284:7
edgeless/group.spec.ts:270:5 › group › release from group › release group from group: tests/utils/asserts.ts#L937
1) edgeless/group.spec.ts:270:5 › group › release from group › release group from group ────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 Array [ "ohrnkj2Gql", + "2", "AudO27Ldg2", ] at utils/asserts.ts:937 935 | ) { 936 | const ids = await getGroupChildrenIds(page, index); > 937 | expect(ids).toEqual(expected); | ^ 938 | } 939 | 940 | export async function assertCanvasElementsCount(page: Page, expected: number) { at assertGroupChildrenIds (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:937:15) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:284: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:43:5) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:324:7
edgeless/group.spec.ts:327:5 › group › delete › delete root group: tests/utils/asserts.ts#L937
2) edgeless/group.spec.ts:327:5 › group › delete › delete root group ───────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 Array [ "auG9mtnDo7", "yDFgJAJ3u-", + "2", ] at utils/asserts.ts:937 935 | ) { 936 | const ids = await getGroupChildrenIds(page, index); > 937 | expect(ids).toEqual(expected); | ^ 938 | } 939 | 940 | export async function assertCanvasElementsCount(page: Page, expected: number) { at assertGroupChildrenIds (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:937:15) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:338:7
edgeless/group.spec.ts:327:5 › group › delete › delete root group: tests/utils/asserts.ts#L937
2) edgeless/group.spec.ts:327:5 › group › delete › delete root group ───────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 Array [ "bxcTKndoGj", "Bfj_AH75mn", + "2", ] at utils/asserts.ts:937 935 | ) { 936 | const ids = await getGroupChildrenIds(page, index); > 937 | expect(ids).toEqual(expected); | ^ 938 | } 939 | 940 | export async function assertCanvasElementsCount(page: Page, expected: number) { at assertGroupChildrenIds (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:937:15) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:338:7
edgeless/group.spec.ts:327:5 › group › delete › delete root group: tests/utils/asserts.ts#L937
2) edgeless/group.spec.ts:327:5 › group › delete › delete root group ───────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 Array [ "o-2cglNRF2", "mjMr0lFI69", + "2", ] at utils/asserts.ts:937 935 | ) { 936 | const ids = await getGroupChildrenIds(page, index); > 937 | expect(ids).toEqual(expected); | ^ 938 | } 939 | 940 | export async function assertCanvasElementsCount(page: Page, expected: number) { at assertGroupChildrenIds (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:937:15) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:338:7
edgeless/clipboard.spec.ts:38:3 › connector clipboard › copy and paste connector whose both sides connect elements: tests/utils/asserts.ts#L650
1) edgeless/clipboard.spec.ts:38:3 › connector clipboard › copy and paste connector whose both sides connect elements Error: expected: 100, but actual: -150 expect(received).toBeLessThan(expected) Expected: < 0.001 Received: 250 at utils/asserts.ts:650 648 | Math.abs(actual - expected), 649 | `expected: ${expected}, but actual: ${actual}` > 650 | ).toBeLessThan(precision); | ^ 651 | } 652 | 653 | export function assertPointAlmostEqual( at assertAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:650:5) at assertPointAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:658:3) at every (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:30) at assertConnectorPath (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:14) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/clipboard.spec.ts:51:5
edgeless/clipboard.spec.ts:38:3 › connector clipboard › copy and paste connector whose both sides connect elements: tests/utils/asserts.ts#L650
1) edgeless/clipboard.spec.ts:38:3 › connector clipboard › copy and paste connector whose both sides connect elements Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expected: 100, but actual: -150 expect(received).toBeLessThan(expected) Expected: < 0.001 Received: 250 at utils/asserts.ts:650 648 | Math.abs(actual - expected), 649 | `expected: ${expected}, but actual: ${actual}` > 650 | ).toBeLessThan(precision); | ^ 651 | } 652 | 653 | export function assertPointAlmostEqual( at assertAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:650:5) at assertPointAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:658:3) at every (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:30) at assertConnectorPath (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:14) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/clipboard.spec.ts:51:5
edgeless/clipboard.spec.ts:38:3 › connector clipboard › copy and paste connector whose both sides connect elements: tests/utils/asserts.ts#L650
1) edgeless/clipboard.spec.ts:38:3 › connector clipboard › copy and paste connector whose both sides connect elements Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expected: 100, but actual: -150 expect(received).toBeLessThan(expected) Expected: < 0.001 Received: 250 at utils/asserts.ts:650 648 | Math.abs(actual - expected), 649 | `expected: ${expected}, but actual: ${actual}` > 650 | ).toBeLessThan(precision); | ^ 651 | } 652 | 653 | export function assertPointAlmostEqual( at assertAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:650:5) at assertPointAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:658:3) at every (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:30) at assertConnectorPath (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:14) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/clipboard.spec.ts:51:5
edgeless/clipboard.spec.ts:38:3 › connector clipboard › copy and paste connector whose both sides connect elements: tests/utils/asserts.ts#L650
1) edgeless/clipboard.spec.ts:38:3 › connector clipboard › copy and paste connector whose both sides connect elements Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expected: 100, but actual: -150 expect(received).toBeLessThan(expected) Expected: < 0.001 Received: 250 at utils/asserts.ts:650 648 | Math.abs(actual - expected), 649 | `expected: ${expected}, but actual: ${actual}` > 650 | ).toBeLessThan(precision); | ^ 651 | } 652 | 653 | export function assertPointAlmostEqual( at assertAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:650:5) at assertPointAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:658:3) at every (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:30) at assertConnectorPath (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:14) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/clipboard.spec.ts:51:5
edgeless/clipboard.spec.ts:83:3 › connector clipboard › copy and paste connector whose one side connects elements: tests/utils/asserts.ts#L650
2) edgeless/clipboard.spec.ts:83:3 › connector clipboard › copy and paste connector whose one side connects elements Error: expected: 100, but actual: -300 expect(received).toBeLessThan(expected) Expected: < 0.001 Received: 400 at utils/asserts.ts:650 648 | Math.abs(actual - expected), 649 | `expected: ${expected}, but actual: ${actual}` > 650 | ).toBeLessThan(precision); | ^ 651 | } 652 | 653 | export function assertPointAlmostEqual( at assertAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:650:5) at assertPointAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:658:3) at every (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:30) at assertConnectorPath (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:14) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/clipboard.spec.ts:95:5
edgeless/clipboard.spec.ts:83:3 › connector clipboard › copy and paste connector whose one side connects elements: tests/utils/asserts.ts#L650
2) edgeless/clipboard.spec.ts:83:3 › connector clipboard › copy and paste connector whose one side connects elements Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expected: 100, but actual: -300 expect(received).toBeLessThan(expected) Expected: < 0.001 Received: 400 at utils/asserts.ts:650 648 | Math.abs(actual - expected), 649 | `expected: ${expected}, but actual: ${actual}` > 650 | ).toBeLessThan(precision); | ^ 651 | } 652 | 653 | export function assertPointAlmostEqual( at assertAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:650:5) at assertPointAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:658:3) at every (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:30) at assertConnectorPath (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:14) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/clipboard.spec.ts:95:5
edgeless/clipboard.spec.ts:83:3 › connector clipboard › copy and paste connector whose one side connects elements: tests/utils/asserts.ts#L650
2) edgeless/clipboard.spec.ts:83:3 › connector clipboard › copy and paste connector whose one side connects elements Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expected: 100, but actual: -300 expect(received).toBeLessThan(expected) Expected: < 0.001 Received: 400 at utils/asserts.ts:650 648 | Math.abs(actual - expected), 649 | `expected: ${expected}, but actual: ${actual}` > 650 | ).toBeLessThan(precision); | ^ 651 | } 652 | 653 | export function assertPointAlmostEqual( at assertAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:650:5) at assertPointAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:658:3) at every (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:30) at assertConnectorPath (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:14) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/clipboard.spec.ts:95:5
edgeless/clipboard.spec.ts:83:3 › connector clipboard › copy and paste connector whose one side connects elements: tests/utils/asserts.ts#L650
2) edgeless/clipboard.spec.ts:83:3 › connector clipboard › copy and paste connector whose one side connects elements Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expected: 100, but actual: -300 expect(received).toBeLessThan(expected) Expected: < 0.001 Received: 400 at utils/asserts.ts:650 648 | Math.abs(actual - expected), 649 | `expected: ${expected}, but actual: ${actual}` > 650 | ).toBeLessThan(precision); | ^ 651 | } 652 | 653 | export function assertPointAlmostEqual( at assertAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:650:5) at assertPointAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:658:3) at every (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:30) at assertConnectorPath (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:14) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/clipboard.spec.ts:95:5
edgeless/connector.spec.ts:312:1 › connector connects rotated Square shape: tests/utils/asserts.ts#L650
3) edgeless/connector.spec.ts:312:1 › connector connects rotated Square shape ──────────────────── Error: expected: 75, but actual: 121.89110481525097 expect(received).toBeLessThan(expected) Expected: < 0.001 Received: 46.89110481525097 at utils/asserts.ts:650 648 | Math.abs(actual - expected), 649 | `expected: ${expected}, but actual: ${actual}` > 650 | ).toBeLessThan(precision); | ^ 651 | } 652 | 653 | export function assertPointAlmostEqual( at assertAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:650:5) at assertPointAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:658:3) at every (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:30) at assertConnectorPath (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:14) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/connector.spec.ts:318:3
edgeless/connector.spec.ts:312:1 › connector connects rotated Square shape: tests/utils/asserts.ts#L650
3) edgeless/connector.spec.ts:312:1 › connector connects rotated Square shape ──────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expected: 75, but actual: 121.89110481525097 expect(received).toBeLessThan(expected) Expected: < 0.001 Received: 46.89110481525097 at utils/asserts.ts:650 648 | Math.abs(actual - expected), 649 | `expected: ${expected}, but actual: ${actual}` > 650 | ).toBeLessThan(precision); | ^ 651 | } 652 | 653 | export function assertPointAlmostEqual( at assertAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:650:5) at assertPointAlmostEqual (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:658:3) at every (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:30) at assertConnectorPath (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:903:14) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/connector.spec.ts:318:3
Playground E2E test (2)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/upload-artifact@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Playground E2E test (1)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/upload-artifact@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Playground E2E test (8)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/upload-artifact@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Playground E2E test (10)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/upload-artifact@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Playground E2E test (6)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/upload-artifact@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Playground E2E test (3)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/upload-artifact@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Playground E2E test (5)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/upload-artifact@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Playground E2E test (4)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/upload-artifact@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
🎭 Playwright Run Summary
12 passed (23.5s)
🎭 Playwright Run Summary
1 failed code.spec.ts:253:1 › change code language can work ───────────────────────────────────────────── 1 flaky clipboard.spec.ts:1016:1 › copy canvas element and text note in edgeless mode ────────────────── 7 skipped 55 passed (3.0m)
🎭 Playwright Run Summary
2 failed basic.spec.ts:312:1 › should undo/redo works on title ────────────────────────────────────────── basic.spec.ts:349:1 › should undo/redo cursor works on title ─────────────────────────────────── 2 flaky attachment.spec.ts:261:1 › should rename attachment works ────────────────────────────────────── attachment.spec.ts:300:1 › should turn attachment to image works ─────────────────────────────── 16 skipped 45 passed (3.2m)
🎭 Playwright Run Summary
1 failed paragraph.spec.ts:107:1 › backspace and arrow on title ───────────────────────────────────────── 2 flaky list.spec.ts:54:1 › add new toggle list ──────────────────────────────────────────────────────── list.spec.ts:71:1 › convert to numbered list block ───────────────────────────────────────────── 61 passed (3.4m)
🎭 Playwright Run Summary
2 flaky hotkey.spec.ts:986:1 › should cut work single line ───────────────────────────────────────────── image.spec.ts:100:1 › can click and copy image ───────────────────────────────────────────────── 5 skipped 57 passed (3.2m)
🎭 Playwright Run Summary
1 failed slash-menu.spec.ts:769:1 › delete block by slash menu should remove children ─────────────────── 2 flaky selection/native.spec.ts:898:1 › Change title when first content is divider ──────────────────── slash-menu.spec.ts:341:3 › slash search › should slash menu search and keyboard works ────────── 2 skipped 59 passed (3.5m)
🎭 Playwright Run Summary
1 flaky selection/native.spec.ts:514:1 › cursor move up and down through note ────────────────────────── 1 skipped 62 passed (3.2m)
🎭 Playwright Run Summary
3 failed edgeless/shortcut.spec.ts:102:3 › zooming › zoom out ─────────────────────────────────────────── edgeless/shortcut.spec.ts:136:3 › zooming › zoom in ──────────────────────────────────────────── edgeless/shortcut.spec.ts:154:1 › cmd + A should select all elements by default ──────────────── 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 56 passed (4.3m)
🎭 Playwright Run Summary
5 failed edgeless/auto-complete.spec.ts:78:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add shape edgeless/auto-complete.spec.ts:93:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add canvas text edgeless/auto-complete.spec.ts:111:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add note edgeless/auto-complete.spec.ts:130:5 › auto-complete › drag on auto-complete button › drag on right auto-complete button to add frame edgeless/auto-connect.spec.ts:16:3 › auto-connect › navigator ────────────────────────────────── 4 flaky database/column.spec.ts:398:3 › select column tag action › should support select tag renaming ── database/column.spec.ts:415:3 › select column tag action › should select tag renaming support shortcut key database/column.spec.ts:438:3 › select column tag action › should support select tag deletion ── drag.spec.ts:65:1 › move drag handle in paragraphs ───────────────────────────────────────────── 55 passed (5.2m)
🎭 Playwright Run Summary
5 failed 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/group.spec.ts:366:5 › group › delete › delete group in group ────────────────────────── edgeless/group.spec.ts:452:5 › group › clipboard › copy and paste group ──────────────────────── 1 flaky edgeless/note.spec.ts:127:1 › resize note then auto size and custom size ─────────────────────── 58 passed (5.5m)
🎭 Playwright Run Summary
21 failed edgeless/clipboard.spec.ts:38:3 › connector clipboard › copy and paste connector whose both sides connect elements edgeless/clipboard.spec.ts:83:3 › connector clipboard › copy and paste connector whose one side connects elements edgeless/connector.spec.ts:312:1 › connector connects rotated Square shape ───────────────────── edgeless/frame.spec.ts:37:5 › frame › add frame › multi select add frame by component toolbar ── edgeless/frame.spec.ts:42:5 › frame › add frame › add frame by shortcut F ────────────────────── edgeless/frame.spec.ts:48:5 › frame › add frame › add frame by more option create frame ──────── edgeless/frame.spec.ts:54:5 › frame › add frame › add frame by edgeless toolbar ──────────────── edgeless/frame.spec.ts:75:3 › frame › edit frame title ───────────────────────────────────────── edgeless/frame.spec.ts:87:3 › frame › blur unmount frame editor ──────────────────────────────── edgeless/frame.spec.ts:98:3 › frame › enter unmount frame editor ─────────────────────────────── edgeless/group.spec.ts:64:5 › group › group create › create group by component toolbar ───────── edgeless/group.spec.ts:70:5 › group › group create › create group by shortcut mod + G ────────── edgeless/group.spec.ts:76:5 › group › group create › create group and undo, redo ─────────────── edgeless/group.spec.ts:93:5 › group › ungroup › ungroup by component toolbar ─────────────────── edgeless/group.spec.ts:101:5 › group › ungroup › ungroup by shortcut mod + shift + G ─────────── edgeless/group.spec.ts:109:5 › group › ungroup › ungroup and undo, redo ──────────────────────── edgeless/group.spec.ts:128:5 › group › drag group › drag group to move ───────────────────────── edgeless/group.spec.ts:143:5 › group › select › select group by click ────────────────────────── edgeless/group.spec.ts:172:5 › group › group and ungroup in group › group in group ───────────── edgeless/group.spec.ts:205:5 › group › group and ungroup in group › ungroup in group ─────────── edgeless/group.spec.ts:240:5 › group › release from group › release element from group ───────── 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 37 passed (10.3m)

Artifacts

Produced during runtime
Name Size
test-results-main Expired
399 MB