Skip to content

refactor: support multiple-editors #15034

refactor: support multiple-editors

refactor: support multiple-editors #15034

Triggered via pull request December 28, 2023 11:52
Status Failure
Total duration 5m 38s
Artifacts 1

test.yaml

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

Annotations

53 errors, 3 warnings, and 11 notices
clipboard.spec.ts:1189:1 › paste from FeiShu list format: tests/utils/asserts.ts#L176
1) clipboard.spec.ts:1189:1 › paste from FeiShu list format ────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "aaaa" Received: "" at utils/asserts.ts:176 174 | export async function assertText(page: Page, text: string, i = 0) { 175 | const actual = await getStringFromRichText(page, i); > 176 | expect(actual).toBe(text); | ^ 177 | } 178 | 179 | export async function assertTextContain(page: Page, text: string, i = 0) { at assertText (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:176:18) at /home/runner/work/blocksuite/blocksuite/tests/clipboard.spec.ts:1216:3
clipboard.spec.ts:1189:1 › paste from FeiShu list format: tests/utils/asserts.ts#L176
1) clipboard.spec.ts:1189:1 › paste from FeiShu list format ────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "aaaa" Received: "" at utils/asserts.ts:176 174 | export async function assertText(page: Page, text: string, i = 0) { 175 | const actual = await getStringFromRichText(page, i); > 176 | expect(actual).toBe(text); | ^ 177 | } 178 | 179 | export async function assertTextContain(page: Page, text: string, i = 0) { at assertText (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:176:18) at /home/runner/work/blocksuite/blocksuite/tests/clipboard.spec.ts:1216:3
clipboard.spec.ts:1189:1 › paste from FeiShu list format: tests/utils/asserts.ts#L176
1) clipboard.spec.ts:1189:1 › paste from FeiShu list format ────────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "aaaa" Received: "" at utils/asserts.ts:176 174 | export async function assertText(page: Page, text: string, i = 0) { 175 | const actual = await getStringFromRichText(page, i); > 176 | expect(actual).toBe(text); | ^ 177 | } 178 | 179 | export async function assertTextContain(page: Page, text: string, i = 0) { at assertText (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:176:18) at /home/runner/work/blocksuite/blocksuite/tests/clipboard.spec.ts:1216:3
clipboard.spec.ts:1189:1 › paste from FeiShu list format: tests/utils/asserts.ts#L176
1) clipboard.spec.ts:1189:1 › paste from FeiShu list format ────────────────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "aaaa" Received: "" at utils/asserts.ts:176 174 | export async function assertText(page: Page, text: string, i = 0) { 175 | const actual = await getStringFromRichText(page, i); > 176 | expect(actual).toBe(text); | ^ 177 | } 178 | 179 | export async function assertTextContain(page: Page, text: string, i = 0) { at assertText (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:176:18) at /home/runner/work/blocksuite/blocksuite/tests/clipboard.spec.ts:1216:3
clipboard.spec.ts:1220:1 › paste in list format: tests/utils/asserts.ts#L196
2) clipboard.spec.ts:1220:1 › paste in list format ─────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 1 Array [ - "test111", - "222", + "test", ] 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/clipboard.spec.ts:1249:3
clipboard.spec.ts:1220:1 › paste in list format: tests/utils/asserts.ts#L196
2) clipboard.spec.ts:1220:1 › paste in list format ─────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 1 Array [ - "test111", - "222", + "test", ] 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/clipboard.spec.ts:1249:3
clipboard.spec.ts:1220:1 › paste in list format: tests/utils/asserts.ts#L196
2) clipboard.spec.ts:1220:1 › paste in list format ─────────────────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 1 Array [ - "test111", - "222", + "test", ] 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/clipboard.spec.ts:1249:3
clipboard.spec.ts:1220:1 › paste in list format: tests/utils/asserts.ts#L196
2) clipboard.spec.ts:1220:1 › paste in list format ─────────────────────────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 1 Array [ - "test111", - "222", + "test", ] 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/clipboard.spec.ts:1249:3
clipboard.spec.ts:1252:1 › auto identify url: tests/utils/asserts.ts#L621
3) clipboard.spec.ts:1252:1 › auto identify url ────────────────────────────────────────────────── Error: <affine:page> <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:type="text" /> </affine:note> </affine:page> expect(received).toEqual(expected) // deep equality - Expected - 11 + Received + 0 @@ -13,20 +13,9 @@ } prop:hidden={false} prop:index="a0" > <affine:paragraph - prop:text={ - <> - <text - insert="test " - /> - <text - insert="https://www.google.com" - link="https://www.google.com" - /> - </> - } prop:type="text" /> </affine:note> </affine:page> 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/clipboard.spec.ts:1275:3
clipboard.spec.ts:1252:1 › auto identify url: tests/utils/asserts.ts#L621
3) clipboard.spec.ts:1252:1 › auto identify url ────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: <affine:page> <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:type="text" /> </affine:note> </affine:page> expect(received).toEqual(expected) // deep equality - Expected - 11 + Received + 0 @@ -13,20 +13,9 @@ } prop:hidden={false} prop:index="a0" > <affine:paragraph - prop:text={ - <> - <text - insert="test " - /> - <text - insert="https://www.google.com" - link="https://www.google.com" - /> - </> - } prop:type="text" /> </affine:note> </affine:page> 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/clipboard.spec.ts:1275:3
hotkey.spec.ts:131:1 › multi line rich-text inline code hotkey: tests/hotkey.spec.ts#L1
1) hotkey.spec.ts:131:1 › multi line rich-text inline code 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
2) 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
3) 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
3) 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
paragraph.spec.ts:1585:1 › paragraph indent and delete in line start: tests/paragraph.spec.ts#L1
1) paragraph.spec.ts:1585:1 › paragraph indent and delete in line start ────────────────────────── 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.
selection/native.spec.ts:928:1 › Delete the blank line between two dividers: tests/utils/asserts.ts#L222
1) selection/native.spec.ts:928:1 › Delete the blank line between two dividers ─────────────────── Error: expect(received).toEqual(expected) // deep equality Expected: 2 Received: 1 at utils/asserts.ts:222 220 | export async function assertDivider(page: Page, count: number) { 221 | const actual = await page.locator('affine-divider').count(); > 222 | expect(actual).toEqual(count); | ^ 223 | } 224 | 225 | export async function assertRichDragButton(page: Page) { at assertDivider (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:222:18) at /home/runner/work/blocksuite/blocksuite/tests/selection/native.spec.ts:941:3
selection/native.spec.ts:1781:1 › press ArrowUp and ArrowDown in the edge of two line: tests/utils/asserts.ts#L138
2) 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
list.spec.ts:54:1 › add new toggle list: tests/list.spec.ts#L1
1) 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
2) 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.
paragraph.spec.ts:1168:1 › handling keyup when cursor located in first paragraph: tests/utils/asserts.ts#L250
3) paragraph.spec.ts:1168:1 › handling keyup when cursor located in first paragraph ────────────── Error: Timed out 5000ms waiting for expect(locator).toBeFocused() Locator: locator('doc-title .inline-editor').first() Expected: focused Received: inactive Call log: - expect.toBeFocused with timeout 5000ms - waiting for locator('doc-title .inline-editor').first() - locator resolved to <div data-v-root="true" contenteditable="true" class=…>…</div> - unexpected value "not focused" - locator resolved to <div data-v-root="true" contenteditable="true" class=…>…</div> - unexpected value "not focused" - locator resolved to <div data-v-root="true" contenteditable="true" class=…>…</div> - unexpected value "not focused" - locator resolved to <div data-v-root="true" contenteditable="true" class=…>…</div> - unexpected value "not focused" - locator resolved to <div data-v-root="true" contenteditable="true" class=…>…</div> - unexpected value "not focused" - locator resolved to <div data-v-root="true" contenteditable="true" class=…>…</div> - unexpected value "not focused" - locator resolved to <div data-v-root="true" contenteditable="true" class=…>…</div> - unexpected value "not focused" - locator resolved to <div data-v-root="true" contenteditable="true" class=…>…</div> - unexpected value "not focused" - locator resolved to <div data-v-root="true" contenteditable="true" class=…>…</div> - unexpected value "not focused" at utils/asserts.ts:250 248 | export async function assertPageTitleFocus(page: Page) { 249 | const locator = page.locator('doc-title .inline-editor').nth(0); > 250 | await expect(locator).toBeFocused(); | ^ 251 | } 252 | 253 | export async function assertListPrefix( at assertPageTitleFocus (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:250:25) at /home/runner/work/blocksuite/blocksuite/tests/paragraph.spec.ts:1182:9
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 timeout of 30000ms exceeded.
database/column.spec.ts:398:3 › select column tag action › should support select tag renaming: tests/utils/actions/keyboard.ts#L27
1) database/column.spec.ts:398:3 › select column tag action › should support select tag renaming ─ Error: keyboard.type: Test timeout of 30000ms exceeded. at utils/actions/keyboard.ts:27 25 | 26 | export async function type(page: Page, content: string, delay = 50) { > 27 | await page.keyboard.type(content, { delay }); | ^ 28 | } 29 | 30 | export async function withPressKey( at type (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/keyboard.ts:27:23) at /home/runner/work/blocksuite/blocksuite/tests/database/column.spec.ts:408:11
database/column.spec.ts:415:3 › select column tag action › should select tag renaming support shortcut key: tests/database/column.spec.ts#L1
2) database/column.spec.ts:415:3 › select column tag action › should select tag renaming support shortcut key Test timeout of 30000ms exceeded.
database/column.spec.ts:415:3 › select column tag action › should select tag renaming support shortcut key: tests/utils/actions/keyboard.ts#L27
2) database/column.spec.ts:415:3 › select column tag action › should select tag renaming support shortcut key Error: keyboard.type: Test timeout of 30000ms exceeded. at utils/actions/keyboard.ts:27 25 | 26 | export async function type(page: Page, content: string, delay = 50) { > 27 | await page.keyboard.type(content, { delay }); | ^ 28 | } 29 | 30 | export async function withPressKey( at type (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/keyboard.ts:27:23) at /home/runner/work/blocksuite/blocksuite/tests/database/column.spec.ts:432:11
database/column.spec.ts:438:3 › select column tag action › should support select tag deletion: tests/database/column.spec.ts#L1
3) database/column.spec.ts:438:3 › select column tag action › should support select tag deletion ─ 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/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/asserts.ts#L787
1) edgeless/shape.spec.ts:65:3 › add shape › with holding shift key ────────────────────────────── Error: locator.boundingBox: Target page, context or browser has been closed at utils/asserts.ts:787 785 | .locator('edgeless-selected-rect') 786 | .locator('.affine-edgeless-selected-rect'); > 787 | const box = await selectedRect.boundingBox(); | ^ 788 | if (!box) throw new Error('Missing edgeless selected rect'); 789 | 790 | expect(box.x).toBeCloseTo(x, 0); at assertEdgelessSelectedRect (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:787:34) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shape.spec.ts:88:11
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 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.
clipboard.spec.ts:219:1 › markdown format parse: tests/utils/asserts.ts#L511
1) clipboard.spec.ts:219:1 › markdown format parse ─────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 13 + Received + 1 Array [ - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "todo", - "todo", - "todo", - "bulleted", - "bulleted", - "numbered", - "quote", + "text", ] at utils/asserts.ts:511 509 | ); 510 | }, currentEditorIndex); > 511 | expect(actual).toEqual(blockTypes); | ^ 512 | } 513 | 514 | /** at assertBlockTypes (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:511:18) at /home/runner/work/blocksuite/blocksuite/tests/clipboard.spec.ts:256:3
clipboard.spec.ts:219:1 › markdown format parse: tests/utils/asserts.ts#L511
1) clipboard.spec.ts:219:1 › markdown format parse ─────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 13 + Received + 1 Array [ - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "todo", - "todo", - "todo", - "bulleted", - "bulleted", - "numbered", - "quote", + "text", ] at utils/asserts.ts:511 509 | ); 510 | }, currentEditorIndex); > 511 | expect(actual).toEqual(blockTypes); | ^ 512 | } 513 | 514 | /** at assertBlockTypes (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:511:18) at /home/runner/work/blocksuite/blocksuite/tests/clipboard.spec.ts:256:3
clipboard.spec.ts:219:1 › markdown format parse: tests/utils/asserts.ts#L511
1) clipboard.spec.ts:219:1 › markdown format parse ─────────────────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 13 + Received + 1 Array [ - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "todo", - "todo", - "todo", - "bulleted", - "bulleted", - "numbered", - "quote", + "text", ] at utils/asserts.ts:511 509 | ); 510 | }, currentEditorIndex); > 511 | expect(actual).toEqual(blockTypes); | ^ 512 | } 513 | 514 | /** at assertBlockTypes (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:511:18) at /home/runner/work/blocksuite/blocksuite/tests/clipboard.spec.ts:256:3
clipboard.spec.ts:219:1 › markdown format parse: tests/utils/asserts.ts#L511
1) clipboard.spec.ts:219:1 › markdown format parse ─────────────────────────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 13 + Received + 1 Array [ - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "todo", - "todo", - "todo", - "bulleted", - "bulleted", - "numbered", - "quote", + "text", ] at utils/asserts.ts:511 509 | ); 510 | }, currentEditorIndex); > 511 | expect(actual).toEqual(blockTypes); | ^ 512 | } 513 | 514 | /** at assertBlockTypes (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:511:18) at /home/runner/work/blocksuite/blocksuite/tests/clipboard.spec.ts:256:3
clipboard.spec.ts:317:1 › split block when paste: tests/utils/asserts.ts#L196
2) clipboard.spec.ts:317:1 › split block when paste ────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 1 Array [ - "atext", - "h1c", + "abc", ] 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/clipboard.spec.ts:335:3
clipboard.spec.ts:317:1 › split block when paste: tests/utils/asserts.ts#L196
2) clipboard.spec.ts:317:1 › split block when paste ────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 1 Array [ - "atext", - "h1c", + "abc", ] 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/clipboard.spec.ts:335:3
clipboard.spec.ts:317:1 › split block when paste: tests/utils/asserts.ts#L196
2) clipboard.spec.ts:317:1 › split block when paste ────────────────────────────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 1 Array [ - "atext", - "h1c", + "abc", ] 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/clipboard.spec.ts:335:3
clipboard.spec.ts:317:1 › split block when paste: tests/utils/asserts.ts#L196
2) clipboard.spec.ts:317:1 › split block when paste ────────────────────────────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 1 Array [ - "atext", - "h1c", + "abc", ] 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/clipboard.spec.ts:335:3
clipboard.spec.ts:358:1 › import markdown: tests/utils/asserts.ts#L196
3) clipboard.spec.ts:358:1 › import markdown ───────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 1 Array [ - "text", - "h1", + "", ] 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/clipboard.spec.ts:368:3
clipboard.spec.ts:358:1 › import markdown: tests/utils/asserts.ts#L196
3) clipboard.spec.ts:358:1 › import markdown ───────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 1 Array [ - "text", - "h1", + "", ] 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/clipboard.spec.ts:368:3
edgeless/group.spec.ts:452:5 › group › clipboard › copy and paste group: tests/utils/asserts.ts#L923
1) edgeless/group.spec.ts:452:5 › group › clipboard › copy and paste group ─────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 3 + Received + 0 Array [ "SSOJIUpF7Y", "SSOJIUpF7Y", "GROUP_ROOT", - undefined, - undefined, - "GROUP_ROOT", ] at utils/asserts.ts:923 921 | export async function assertGroupIds(page: Page, expected: string[]) { 922 | const ids = await getGroupIds(page); > 923 | expect(ids).toEqual(expected); | ^ 924 | } 925 | 926 | export async function assertSortedIds(page: Page, expected: string[]) { at assertGroupIds (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:923:15) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:465:7
edgeless/group.spec.ts:452:5 › group › clipboard › copy and paste group: tests/utils/asserts.ts#L923
1) edgeless/group.spec.ts:452:5 › group › clipboard › copy and paste group ─────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 3 + Received + 0 Array [ "YccEtD8z7y", "YccEtD8z7y", "GROUP_ROOT", - undefined, - undefined, - "GROUP_ROOT", ] at utils/asserts.ts:923 921 | export async function assertGroupIds(page: Page, expected: string[]) { 922 | const ids = await getGroupIds(page); > 923 | expect(ids).toEqual(expected); | ^ 924 | } 925 | 926 | export async function assertSortedIds(page: Page, expected: string[]) { at assertGroupIds (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:923:15) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:465:7
edgeless/group.spec.ts:452:5 › group › clipboard › copy and paste group: tests/utils/asserts.ts#L923
1) edgeless/group.spec.ts:452:5 › group › clipboard › copy and paste group ─────────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 3 + Received + 0 Array [ "Iutw3aw-fp", "Iutw3aw-fp", "GROUP_ROOT", - undefined, - undefined, - "GROUP_ROOT", ] at utils/asserts.ts:923 921 | export async function assertGroupIds(page: Page, expected: string[]) { 922 | const ids = await getGroupIds(page); > 923 | expect(ids).toEqual(expected); | ^ 924 | } 925 | 926 | export async function assertSortedIds(page: Page, expected: string[]) { at assertGroupIds (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:923:15) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:465:7
edgeless/group.spec.ts:452:5 › group › clipboard › copy and paste group: tests/utils/asserts.ts#L923
1) edgeless/group.spec.ts:452:5 › group › clipboard › copy and paste group ─────────────────────── Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 3 + Received + 0 Array [ "mqjTDtjIR-", "mqjTDtjIR-", "GROUP_ROOT", - undefined, - undefined, - "GROUP_ROOT", ] at utils/asserts.ts:923 921 | export async function assertGroupIds(page: Page, expected: string[]) { 922 | const ids = await getGroupIds(page); > 923 | expect(ids).toEqual(expected); | ^ 924 | } 925 | 926 | export async function assertSortedIds(page: Page, expected: string[]) { at assertGroupIds (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:923:15) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:465:7
edgeless/group.spec.ts:270:5 › group › release from group › release group from group: tests/edgeless/group.spec.ts#L233
2) 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
2) 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:327:5 › group › delete › delete root group: tests/edgeless/group.spec.ts#L1
3) edgeless/group.spec.ts:327:5 › group › delete › delete root group ───────────────────────────── Test timeout of 30000ms exceeded.
edgeless/group.spec.ts:327:5 › group › delete › delete root group: tests/utils/actions/edgeless.ts#L874
3) edgeless/group.spec.ts:327:5 › group › delete › delete root group ───────────────────────────── Error: locator.click: Test timeout of 30000ms exceeded. Call log: - waiting for locator('edgeless-component-toolbar').locator('edgeless-add-group-button') at utils/actions/edgeless.ts:874 872 | 'edgeless-add-group-button' 873 | ); > 874 | await button.click(); | ^ 875 | break; 876 | } 877 | case 'ungroup': { at triggerComponentToolbarAction (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:874:20) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:329:13
edgeless/group.spec.ts:344:5 › group › delete › delete sub-element in group: tests/edgeless/group.spec.ts#L1
4) edgeless/group.spec.ts:344:5 › group › delete › delete sub-element in group ─────────────────── Test timeout of 30000ms exceeded.
edgeless/group.spec.ts:344:5 › group › delete › delete sub-element in group: tests/utils/actions/edgeless.ts#L874
4) 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-component-toolbar').locator('edgeless-add-group-button') - locator resolved to <edgeless-add-group-button></edgeless-add-group-button> - attempting click action - waiting for element to be visible, enabled and stable at utils/actions/edgeless.ts:874 872 | 'edgeless-add-group-button' 873 | ); > 874 | await button.click(); | ^ 875 | break; 876 | } 877 | case 'ungroup': { at triggerComponentToolbarAction (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:874:20) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/group.spec.ts:346:13
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/asserts.ts#L787
1) edgeless/basic.spec.ts:67:1 › can zoom viewport ─────────────────────────────────────────────── Error: locator.boundingBox: Test timeout of 30000ms exceeded. Call log: - waiting for locator('affine-editor-container').first().locator('edgeless-selected-rect').locator('.affine-edgeless-selected-rect') at utils/asserts.ts:787 785 | .locator('edgeless-selected-rect') 786 | .locator('.affine-edgeless-selected-rect'); > 787 | const box = await selectedRect.boundingBox(); | ^ 788 | if (!box) throw new Error('Missing edgeless selected rect'); 789 | 790 | expect(box.x).toBeCloseTo(x, 0); at assertEdgelessSelectedRect (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:787:34) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/basic.spec.ts:88:9
edgeless/basic.spec.ts:118:1 › option/alt mouse drag duplicate a new element: tests/edgeless/basic.spec.ts#L1
2) 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/click.ts#L38
2) 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('debug-menu').locator('sl-tooltip[content="Undo"]') - locator resolved to <sl-tooltip hoist="" content="Undo" placement="bottom">…</sl-tooltip> - attempting click action - waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - element is not visible - retrying click action, attempt #1 - waiting for element to be visible, enabled and stable at utils/actions/click.ts:38 36 | 37 | export async function undoByClick(page: Page) { > 38 | await getDebugMenu(page).undoBtn.click(); | ^ 39 | } 40 | 41 | export async function redoByClick(page: Page) { at undoByClick (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/click.ts:38:36) at /home/runner/work/blocksuite/blocksuite/tests/edgeless/basic.spec.ts:132:9
edgeless/basic.spec.ts:164:1 › the tooltip of more button should be hidden when the action menu is shown: tests/edgeless/basic.spec.ts#L187
3) edgeless/basic.spec.ts:164:1 › the tooltip of more button should be hidden when the action menu is shown Error: expect.toBeVisible: Error: strict mode violation: locator('.affine-tooltip') resolved to 2 elements: 1) <div role="tooltip" class="affine-tooltip">…</div> aka getByRole('tooltip', { name: 'Select V' }) 2) <div role="tooltip" class="affine-tooltip">…</div> aka getByRole('tooltip', { name: 'More' }) Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.affine-tooltip') 185 | 186 | await page.mouse.move(moreButtonBox.x + 10, moreButtonBox.y + 10); > 187 | await expect(tooltip).toBeVisible(); | ^ 188 | 189 | await page.mouse.click(moreButtonBox.x + 10, moreButtonBox.y + 10); 190 | await expect(tooltip).toBeHidden(); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/basic.spec.ts:187:25
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 (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/
🎭 Playwright Run Summary
12 passed (23.0s)
🎭 Playwright Run Summary
3 failed clipboard.spec.ts:1189:1 › paste from FeiShu list format ─────────────────────────────────────── clipboard.spec.ts:1220:1 › paste in list format ──────────────────────────────────────────────── clipboard.spec.ts:1252:1 › auto identify url ─────────────────────────────────────────────────── 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 52 passed (3.5m)
🎭 Playwright Run Summary
3 flaky hotkey.spec.ts:131:1 › multi line rich-text inline code hotkey ───────────────────────────────── hotkey.spec.ts:986:1 › should cut work single line ───────────────────────────────────────────── image.spec.ts:100:1 › can click and copy image ───────────────────────────────────────────────── 5 skipped 56 passed (3.2m)
🎭 Playwright Run Summary
1 flaky paragraph.spec.ts:1585:1 › paragraph indent and delete in line start ─────────────────────────── 1 skipped 62 passed (3.2m)
🎭 Playwright Run Summary
2 flaky selection/native.spec.ts:928:1 › Delete the blank line between two dividers ──────────────────── selection/native.spec.ts:1781:1 › press ArrowUp and ArrowDown in the edge of two line ────────── 2 skipped 60 passed (3.2m)
🎭 Playwright Run Summary
3 flaky list.spec.ts:54:1 › add new toggle list ──────────────────────────────────────────────────────── list.spec.ts:71:1 › convert to numbered list block ───────────────────────────────────────────── paragraph.spec.ts:1168:1 › handling keyup when cursor located in first paragraph ─────────────── 61 passed (3.4m)
🎭 Playwright Run Summary
3 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 ── 61 passed (3.5m)
🎭 Playwright Run Summary
2 flaky edgeless/shape.spec.ts:65:3 › add shape › with holding shift key ─────────────────────────────── edgeless/shape.spec.ts:92:1 › delete shape by component-toolbar ──────────────────────────────── 1 skipped 61 passed (3.5m)
🎭 Playwright Run Summary
9 failed clipboard.spec.ts:219:1 › markdown format parse ──────────────────────────────────────────────── clipboard.spec.ts:317:1 › split block when paste ─────────────────────────────────────────────── clipboard.spec.ts:358:1 › import markdown ────────────────────────────────────────────────────── clipboard.spec.ts:373:1 › copy clipItems format ──────────────────────────────────────────────── clipboard.spec.ts:460:1 › paste a non-nested list to a non-nested list ───────────────────────── clipboard.spec.ts:496:1 › copy a nested list by clicking button, the clipboard data should be complete clipboard.spec.ts:533:1 › paste a nested list to a nested list ───────────────────────────────── clipboard.spec.ts:614:1 › paste nested lists to a nested list ────────────────────────────────── clipboard.spec.ts:707:1 › paste non-nested lists to a nested list ────────────────────────────── 2 flaky attachment.spec.ts:261:1 › should rename attachment works ────────────────────────────────────── attachment.spec.ts:300:1 › should turn attachment to image works ─────────────────────────────── 16 skipped 38 passed (4.4m)
🎭 Playwright Run Summary
1 failed edgeless/group.spec.ts:452:5 › group › clipboard › copy and paste group ──────────────────────── 3 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 ──────────────────── 60 passed (4.5m)
🎭 Playwright Run Summary
3 flaky edgeless/basic.spec.ts:67:1 › can zoom viewport ──────────────────────────────────────────────── edgeless/basic.spec.ts:118:1 › option/alt mouse drag duplicate a new element ─────────────────── edgeless/basic.spec.ts:164:1 › the tooltip of more button should be hidden when the action menu is shown 3 skipped 58 passed (4.4m)

Artifacts

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