refactor(database): avoid modifying all views when editing a single view #7673
test.yml
on: pull_request
Install Dependencies
1m 12s
Build & Test
0s
Annotations
16 errors, 19 warnings, and 20 notices
database/column.spec.ts:39:3 › column operations › should support rename column:
tests/database/column.spec.ts#L57
1) database/column.spec.ts:39:3 › column operations › should support rename column ───────────────
Error: expect(received).toBe(expected) // Object.is equality
Expected: "abc123"
Received: "abc"
55 | expect(await textElement.innerText()).toBe('abc');
56 | await redoByClick(page);
> 57 | expect(await textElement.innerText()).toBe('abc123');
| ^
58 | });
59 |
60 | test('should support add new column', async ({ page }) => {
at /home/runner/work/blocksuite/blocksuite/tests/database/column.spec.ts:57:43
|
database/column.spec.ts:39:3 › column operations › should support rename column:
tests/database/column.spec.ts#L57
1) database/column.spec.ts:39:3 › column operations › should support rename column ───────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(received).toBe(expected) // Object.is equality
Expected: "abc123"
Received: "abc"
55 | expect(await textElement.innerText()).toBe('abc');
56 | await redoByClick(page);
> 57 | expect(await textElement.innerText()).toBe('abc123');
| ^
58 | });
59 |
60 | test('should support add new column', async ({ page }) => {
at /home/runner/work/blocksuite/blocksuite/tests/database/column.spec.ts:57:43
|
database/column.spec.ts:39:3 › column operations › should support rename column:
tests/database/column.spec.ts#L57
1) database/column.spec.ts:39:3 › column operations › should support rename column ───────────────
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(received).toBe(expected) // Object.is equality
Expected: "abc123"
Received: "abc"
55 | expect(await textElement.innerText()).toBe('abc');
56 | await redoByClick(page);
> 57 | expect(await textElement.innerText()).toBe('abc123');
| ^
58 | });
59 |
60 | test('should support add new column', async ({ page }) => {
at /home/runner/work/blocksuite/blocksuite/tests/database/column.spec.ts:57:43
|
database/column.spec.ts:39:3 › column operations › should support rename column:
tests/database/column.spec.ts#L57
1) database/column.spec.ts:39:3 › column operations › should support rename column ───────────────
Retry #3 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(received).toBe(expected) // Object.is equality
Expected: "abc123"
Received: "abc"
55 | expect(await textElement.innerText()).toBe('abc');
56 | await redoByClick(page);
> 57 | expect(await textElement.innerText()).toBe('abc123');
| ^
58 | });
59 |
60 | test('should support add new column', async ({ page }) => {
at /home/runner/work/blocksuite/blocksuite/tests/database/column.spec.ts:57:43
|
E2E Test (3)
Process completed with exit code 1.
|
hotkey/multiline.spec.ts:100:1 › should cut work multiple line:
tests/hotkey/multiline.spec.ts#L110
1) hotkey/multiline.spec.ts:100:1 › should cut work multiple line ────────────────────────────────
Error: Snapshot comparison failed:
{
"type": "block",
"id": "0",
"flavour": "affine:page",
"version": 2,
"props": {
"title": {
"$blocksuite:internal:text$": true,
"delta": []
}
},
"children": [
{
"type": "block",
"id": "1",
"flavour": "affine:note",
"version": 1,
"props": {
"xywh": "[0,0,498,92]",
"background": "--affine-note-background-white",
"index": "a0",
"hidden": false,
"displayMode": "both",
"edgeless": {
"style": {
"borderRadius": 8,
"borderSize": 4,
"borderStyle": "none",
"shadowType": "--affine-note-shadow-box"
}
}
},
"children": [
{
"type": "block",
"id": "2",
"flavour": "affine:paragraph",
"version": 1,
"props": {
"type": "text",
"text": {
"$blocksuite:internal:text$": true,
"delta": [
{
"insert": "123"
}
]
}
},
"children": []
},
{
"type": "block",
"id": "3",
"flavour": "affine:paragraph",
"version": 1,
"props": {
"type": "text",
"text": {
"$blocksuite:internal:text$": true,
"delta": [
{
"insert": "456"
}
]
}
},
"children": []
},
{
"type": "block",
"id": "4",
"flavour": "affine:paragraph",
"version": 1,
"props": {
"type": "text",
"text": {
"$blocksuite:internal:text$": true,
"delta": [
{
"insert": "789"
}
]
}
},
"children": []
}
]
}
]
}
Expected: /home/runner/work/blocksuite/blocksuite/tests/snapshots/hotkey/multiline.spec.ts/should-cut-work-multiple-line-init.json
Received: /home/runner/work/blocksuite/blocksuite/tests/test-results/hotkey-multiline-should-cut-work-multiple-line/should-cut-work-multiple-line-init-actual.json
108 | // cut
109 | await page.keyboard.press(`${SHORT_KEY}+x`);
> 110 | expect(await getPageSnapshot(page, true)).toMatchSnapshot(
| ^
111 | `${testInfo.title}_init.json`
112 | );
113 | await undoByKeyboard(page);
at /home/runner/work/blocksuite/blocksuite/tests/hotkey/multiline.spec.ts:110:45
|
edgeless/shortcut.spec.ts:119:1 › should not switch shapes in editing:
tests/utils/actions/edgeless.ts#L357
1) edgeless/shortcut.spec.ts:119:1 › should not switch shapes in editing ─────────────────────────
TimeoutError: locator.click: Timeout 5000ms exceeded.
Call log:
- waiting for locator('edgeless-slide-menu edgeless-tool-icon-button').filter({ hasText: 'Square' })
- locator resolved to <edgeless-tool-icon-button role="button">…</edgeless-tool-icon-button>
- attempting click action
- waiting for element to be visible, enabled and stable
- element is not stable
- retrying click action, attempt #1
- waiting for element to be visible, enabled and stable
- element is not stable
- retrying click action, attempt #2
- waiting 20ms
- waiting for element to be visible, enabled and stable
- element was detached from the DOM, retrying
at utils/actions/edgeless.ts:357
355 | .locator('edgeless-slide-menu edgeless-tool-icon-button')
356 | .filter({ hasText: shape });
> 357 | await squareShapeButton.click();
| ^
358 | break;
359 | }
360 | }
at setEdgelessTool (/home/runner/work/blocksuite/blocksuite/tests/utils/actions/edgeless.ts:357:31)
at /home/runner/work/blocksuite/blocksuite/tests/edgeless/shortcut.spec.ts:137:3
|
attachment.spec.ts:697:1 › indent attachment block to list:
tests/attachment.spec.ts#L69
1) attachment.spec.ts:697:1 › indent attachment block to list ────────────────────────────────────
TimeoutError: page.waitForEvent: Timeout 5000ms exceeded while waiting for event "filechooser"
=========================== logs ===========================
waiting for event "filechooser"
============================================================
67 | await expect(slashMenu).toBeVisible();
68 |
> 69 | const fileChooser = page.waitForEvent('filechooser');
| ^
70 | await pressEnter(page);
71 | await sleep(100);
72 | await (await fileChooser).setFiles(FILE_PATH);
at insertAttachment (/home/runner/work/blocksuite/blocksuite/tests/attachment.spec.ts:69:30)
at /home/runner/work/blocksuite/blocksuite/tests/attachment.spec.ts:705:3
|
attachment.spec.ts:725:1 › attachment can be dragged from note to surface top level block:
tests/attachment.spec.ts#L69
2) attachment.spec.ts:725:1 › attachment can be dragged from note to surface top level block ─────
TimeoutError: page.waitForEvent: Timeout 5000ms exceeded while waiting for event "filechooser"
=========================== logs ===========================
waiting for event "filechooser"
============================================================
67 | await expect(slashMenu).toBeVisible();
68 |
> 69 | const fileChooser = page.waitForEvent('filechooser');
| ^
70 | await pressEnter(page);
71 | await sleep(100);
72 | await (await fileChooser).setFiles(FILE_PATH);
at insertAttachment (/home/runner/work/blocksuite/blocksuite/tests/attachment.spec.ts:69:30)
at /home/runner/work/blocksuite/blocksuite/tests/attachment.spec.ts:733:3
|
bookmark.spec.ts:204:1 › press backspace after bookmark block can select bookmark block:
tests/utils/asserts.ts#L293
3) bookmark.spec.ts:204:1 › press backspace after bookmark block can select bookmark block ───────
Error: Timed out 5000ms waiting for expect(locator).toHaveCount(expected)
Locator: locator('affine-paragraph')
Expected: 1
Received: 4
Call log:
- expect.toHaveCount with timeout 5000ms
- waiting for locator('affine-paragraph')
- locator resolved to 4 elements
- unexpected value "4"
- locator resolved to 4 elements
- unexpected value "4"
- locator resolved to 4 elements
- unexpected value "4"
- locator resolved to 4 elements
- unexpected value "4"
- locator resolved to 4 elements
- unexpected value "4"
- locator resolved to 4 elements
- unexpected value "4"
- locator resolved to 4 elements
- unexpected value "4"
- locator resolved to 4 elements
- unexpected value "4"
- locator resolved to 4 elements
- unexpected value "4"
at utils/asserts.ts:293
291 | count: number
292 | ) {
> 293 | await expect(page.locator(`affine-${flavour}`)).toHaveCount(count);
| ^
294 | }
295 | export async function assertRowCount(page: Page, count: number) {
296 | await expect(page.locator('.affine-database-block-row')).toHaveCount(count);
at assertBlockCount (/home/runner/work/blocksuite/blocksuite/tests/utils/asserts.ts:293:51)
at /home/runner/work/blocksuite/blocksuite/tests/bookmark.spec.ts:220:9
|
selection/native.spec.ts:265:1 › cursor move to up and down with children block:
tests/selection/native.spec.ts#L294
1) selection/native.spec.ts:265:1 › cursor move to up and down with children block ───────────────
Error: expect(received).toBeGreaterThanOrEqual(expected)
Expected: >= 12
Received: -1
292 | const textTwo = await getInlineSelectionText(page);
293 | expect(textTwo).toBe('arrow down test 1');
> 294 | expect(indexTwo).toBeGreaterThanOrEqual(12);
| ^
295 | expect(indexTwo).toBeLessThanOrEqual(17);
296 | await page.keyboard.press('ArrowDown');
297 | const textThree = await getInlineSelectionText(page);
at /home/runner/work/blocksuite/blocksuite/tests/selection/native.spec.ts:294:20
|
clipboard/clipboard.spec.ts:325:1 › clipboard copy nested items:
tests/clipboard/clipboard.spec.ts#L348
1) clipboard/clipboard.spec.ts:325:1 › clipboard copy nested items ───────────────────────────────
Error: Snapshot comparison failed:
bc
d
Expected: /home/runner/work/blocksuite/blocksuite/tests/snapshots/clipboard/clipboard.spec.ts/clipboard-copy-nested-items-clipboard.md
Received: /home/runner/work/blocksuite/blocksuite/tests/test-results/clipboard-clipboard-clipboard-copy-nested-items/clipboard-copy-nested-items-clipboard-actual.md
346 | const html = await getClipboardHTML(page);
347 | const snapshot = await getClipboardSnapshot(page);
> 348 | expect(text).toMatchSnapshot(`${testInfo.title}-clipboard.md`);
| ^
349 | expect(JSON.stringify(snapshot.snapshot.content, null, 2)).toMatchSnapshot(
350 | `${testInfo.title}-clipboard.json`
351 | );
at /home/runner/work/blocksuite/blocksuite/tests/clipboard/clipboard.spec.ts:348:16
|
code/copy-paste.spec.ts:66:1 › drag copy paste:
tests/code/copy-paste.spec.ts#L79
2) code/copy-paste.spec.ts:66:1 › drag copy paste ────────────────────────────────────────────────
Error: expect(received).toBe(expected) // Object.is equality
Expected: "useuse"
Received: "1234use"
77 |
78 | const content = await getInlineSelectionText(page);
> 79 | expect(content).toBe('useuse');
| ^
80 |
81 | await assertRichTextInlineRange(page, 0, 3, 0);
82 | });
at /home/runner/work/blocksuite/blocksuite/tests/code/copy-paste.spec.ts:79:19
|
latex/inline.spec.ts:94:1 › update inline latex by clicking the node:
tests/latex/inline.spec.ts#L126
1) latex/inline.spec.ts:94:1 › update inline latex by clicking the node ──────────────────────────
Error: expect(received).toBe(expected) // Object.is equality
- Expected - 7
+ Received + 1
- <math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mtable rowspacing="0.66em" columnalign="center center center" columnlines="dashed dashed" columnspacing="1em" rowlines="none none dashed"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>a</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>b</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>c</mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>h</mi><mi>l</mi><mi>i</mi><mi>n</mi><mi>e</mi><mi>d</mi></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>e</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>f</mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>g</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>h</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>i</mi></mstyle></mtd></mtr></mtable><annotation encoding="application/x-tex">\def\arraystretch{1.5}
- \begin{array}{c:c:c}
- a & b & c \\ \\ hline
- d & e & f \\
- \hdashline
- g & h & i
- \end{array}</annotation></semantics></math>
+ <math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>E</mi><mo>=</mo><mi>m</mi><msup><mi>c</mi><mn>2</mn></msup></mrow><annotation encoding="application/x-tex">E=mc^2</annotation></semantics></math>
124 | await pressShiftEnter(page);
125 | await type(page, String.raw`\end{array}`);
> 126 | expect(await latexElement.locator('.katex').innerHTML()).toBe(
| ^
127 | '<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mtable rowspacing="0.66em" columnalign="center center center" columnlines="dashed dashed" columnspacing="1em" rowlines="none none dashed"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>a</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>b</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>c</mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>h</mi><mi>l</mi><mi>i</mi><mi>n</mi><mi>e</mi><mi>d</mi></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>e</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>f</mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>g</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>h</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>i</mi></mstyle></mtd></mtr></mtable><annotation encoding="application/x-tex">\\def\\arraystretch{1.5}\n\\begin{array}{c:c:c}\na & b & c \\\\ \\\\ hline\nd & e & f \\\\\n\\hdashline\ng & h & i\n\\end{array}</annotation></semantics></math>'
128 | );
129 |
at /home/runner/work/blocksuite/blocksuite/tests/latex/inline.spec.ts:126:60
|
edgeless/note/drag-handle.spec.ts:122:1 › drag handle should work across multiple notes:
tests/edgeless/note/drag-handle.spec.ts#L148
1) edgeless/note/drag-handle.spec.ts:122:1 › drag handle should work across multiple notes ───────
Error: Timed out 5000ms waiting for expect(locator).toBeHidden()
Locator: locator('.affine-drag-handle-container')
Expected: hidden
Received: visible
Call log:
- expect.toBeHidden with timeout 5000ms
- waiting for locator('.affine-drag-handle-container')
- locator resolved to <div draggable="true" class="affine-drag-handle-container">…</div>
- unexpected value "visible"
- locator resolved to <div draggable="true" class="affine-drag-handle-container">…</div>
- unexpected value "visible"
- locator resolved to <div draggable="true" class="affine-drag-handle-container">…</div>
- unexpected value "visible"
- locator resolved to <div draggable="true" class="affine-drag-handle-container">…</div>
- unexpected value "visible"
- locator resolved to <div draggable="true" class="affine-drag-handle-container">…</div>
- unexpected value "visible"
- locator resolved to <div draggable="true" class="affine-drag-handle-container">…</div>
- unexpected value "visible"
- locator resolved to <div draggable="true" class="affine-drag-handle-container">…</div>
- unexpected value "visible"
- locator resolved to <div draggable="true" class="affine-drag-handle-container">…</div>
- unexpected value "visible"
- locator resolved to <div draggable="true" class="affine-drag-handle-container">…</div>
- unexpected value "visible"
146 | await dragHandleFromBlockToBlockBottomById(page, '3', '4');
147 | await waitNextFrame(page);
> 148 | await expect(page.locator('.affine-drag-handle-container')).toBeHidden();
| ^
149 | await assertRichTexts(page, ['456', '123', '789', '000']);
150 |
151 | await expect(page.locator('selected > *')).toHaveCount(0);
at /home/runner/work/blocksuite/blocksuite/tests/edgeless/note/drag-handle.spec.ts:148:63
|
Build & Test
Process completed with exit code 1.
|
E2E Test (20)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (16)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (18)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (14)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (12)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (13)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (1)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (10)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (17)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (19)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (4)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (2)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (6)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (5)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (7)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (11)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (15)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (8)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
E2E Test (9)
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|
🎭 Playwright Run Summary
3 skipped
44 passed (44.1s)
|
🎭 Playwright Run Summary
1 failed
database/column.spec.ts:39:3 › column operations › should support rename column ────────────────
4 skipped
43 passed (57.6s)
|
🎭 Playwright Run Summary
1 skipped
46 passed (47.7s)
|
🎭 Playwright Run Summary
47 passed (54.8s)
|
🎭 Playwright Run Summary
1 flaky
hotkey/multiline.spec.ts:100:1 › should cut work multiple line ─────────────────────────────────
46 passed (1.0m)
|
🎭 Playwright Run Summary
1 flaky
edgeless/shortcut.spec.ts:119:1 › should not switch shapes in editing ──────────────────────────
2 skipped
44 passed (1.1m)
|
🎭 Playwright Run Summary
47 passed (1.1m)
|
🎭 Playwright Run Summary
3 flaky
attachment.spec.ts:697:1 › indent attachment block to list ─────────────────────────────────────
attachment.spec.ts:725:1 › attachment can be dragged from note to surface top level block ──────
bookmark.spec.ts:204:1 › press backspace after bookmark block can select bookmark block ────────
2 skipped
43 passed (1.1m)
|
🎭 Playwright Run Summary
1 skipped
46 passed (1.1m)
|
🎭 Playwright Run Summary
47 passed (51.9s)
|
🎭 Playwright Run Summary
1 flaky
selection/native.spec.ts:265:1 › cursor move to up and down with children block ────────────────
46 passed (58.1s)
|
🎭 Playwright Run Summary
47 passed (1.0m)
|
🎭 Playwright Run Summary
2 flaky
clipboard/clipboard.spec.ts:325:1 › clipboard copy nested items ────────────────────────────────
code/copy-paste.spec.ts:66:1 › drag copy paste ─────────────────────────────────────────────────
1 skipped
45 passed (54.1s)
|
🎭 Playwright Run Summary
47 passed (1.3m)
|
🎭 Playwright Run Summary
6 skipped
41 passed (1.5m)
|
🎭 Playwright Run Summary
1 skipped
46 passed (1.6m)
|
🎭 Playwright Run Summary
1 skipped
46 passed (1.6m)
|
🎭 Playwright Run Summary
1 flaky
latex/inline.spec.ts:94:1 › update inline latex by clicking the node ───────────────────────────
1 skipped
45 passed (1.1m)
|
🎭 Playwright Run Summary
47 passed (1.7m)
|
🎭 Playwright Run Summary
1 flaky
edgeless/note/drag-handle.spec.ts:122:1 › drag handle should work across multiple notes ────────
10 skipped
36 passed (1.6m)
|
Artifacts
Produced during runtime
Name | Size | |
---|---|---|
test-results-e2e-3
|
3.35 MB |
|