Skip to content

Proof of Concept: Improve Block Toolbar Semantics/Accessibility #82867

Proof of Concept: Improve Block Toolbar Semantics/Accessibility

Proof of Concept: Improve Block Toolbar Semantics/Accessibility #82867

Triggered via pull request September 6, 2023 15:11
Status Failure
Total duration 39m 42s
Artifacts 2

end2end-test.yml

on: pull_request
Matrix: e2e-playwright
Matrix: e2e-puppeteer
Report to GitHub
6m 22s
Report to GitHub
Fit to window
Zoom out
Zoom in

Annotations

33 errors and 4 notices
Puppeteer - 3: packages/e2e-tests/specs/editor/various/keyboard-navigable-blocks.test.js#L57
Error: expect(received).toBe(expected) // Object.is equality Expected: "Paragraph" Received: "Paragraph block" at toBe (/home/runner/work/gutenberg/gutenberg/packages/e2e-tests/specs/editor/various/keyboard-navigable-blocks.test.js:57:41) at runMicrotasks (<anonymous>) at processTicksAndRejections (node:internal/process/task_queues:96:5) at tabThroughParagraphBlock (/home/runner/work/gutenberg/gutenberg/packages/e2e-tests/specs/editor/various/keyboard-navigable-blocks.test.js:35:2) at Object.<anonymous> (/home/runner/work/gutenberg/gutenberg/packages/e2e-tests/specs/editor/various/keyboard-navigable-blocks.test.js:105:3)
Puppeteer - 3: packages/e2e-tests/specs/editor/various/keyboard-navigable-blocks.test.js#L211
Error: expect(received).toBe(expected) // Object.is equality Expected: "Move up" Received: "Options" at Object.toBe (/home/runner/work/gutenberg/gutenberg/packages/e2e-tests/specs/editor/various/keyboard-navigable-blocks.test.js:211:42) at runMicrotasks (<anonymous>) at processTicksAndRejections (node:internal/process/task_queues:96:5)
Puppeteer - 3
Process completed with exit code 1.
[chromium] › editor/various/toolbar-roving-tabindex.spec.js:19:2 › Toolbar roving tabindex › ensures base block toolbars use roving tabindex: test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js#L185
1) [chromium] › editor/various/toolbar-roving-tabindex.spec.js:19:2 › Toolbar roving tabindex › ensures base block toolbars use roving tabindex Error: expect(received).toBe(expected) // Object.is equality Expected: "Paragraph block" Received: "Save draft" 183 | } ); 184 | } > 185 | expect( ariaLabel ).toBe( label ); | ^ 186 | } 187 | 188 | async wrapCurrentBlockWithGroup( currentBlockTitle ) { at ToolbarRovingTabindexUtils.expectLabelToHaveFocus (/home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js:185:23) at ToolbarRovingTabindexUtils.testBlockToolbarKeyboardNavigation (/home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js:165:3) at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js:28:3
[chromium] › editor/various/toolbar-roving-tabindex.spec.js:19:2 › Toolbar roving tabindex › ensures base block toolbars use roving tabindex: test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js#L185
1) [chromium] › editor/various/toolbar-roving-tabindex.spec.js:19:2 › Toolbar roving tabindex › ensures base block toolbars use roving tabindex Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "Paragraph block" Received: "Save draft" 183 | } ); 184 | } > 185 | expect( ariaLabel ).toBe( label ); | ^ 186 | } 187 | 188 | async wrapCurrentBlockWithGroup( currentBlockTitle ) { at ToolbarRovingTabindexUtils.expectLabelToHaveFocus (/home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js:185:23) at ToolbarRovingTabindexUtils.testBlockToolbarKeyboardNavigation (/home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js:165:3) at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js:28:3
[chromium] › editor/various/toolbar-roving-tabindex.spec.js:19:2 › Toolbar roving tabindex › ensures base block toolbars use roving tabindex: test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js#L185
1) [chromium] › editor/various/toolbar-roving-tabindex.spec.js:19:2 › Toolbar roving tabindex › ensures base block toolbars use roving tabindex Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "Paragraph block" Received: "Save draft" 183 | } ); 184 | } > 185 | expect( ariaLabel ).toBe( label ); | ^ 186 | } 187 | 188 | async wrapCurrentBlockWithGroup( currentBlockTitle ) { at ToolbarRovingTabindexUtils.expectLabelToHaveFocus (/home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js:185:23) at ToolbarRovingTabindexUtils.testBlockToolbarKeyboardNavigation (/home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js:165:3) at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js:28:3
[chromium] › site-editor/block-removal.spec.js:23:2 › Site editor block removal prompt › should appear when attempting to remove Query Block: test/e2e/specs/site-editor/block-removal.spec.js#L28
2) [chromium] › site-editor/block-removal.spec.js:23:2 › Site editor block removal prompt › should appear when attempting to remove Query Block Error: locator.click: Error: strict mode violation: getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) resolved to 2 elements: 1) <button id=":rk:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).first() 2) <button id=":rq:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).nth(1) =========================== logs =========================== waiting for getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) ============================================================ 26 | // Open and focus List View 27 | const topBar = page.getByRole( 'region', { name: 'Editor top bar' } ); > 28 | await topBar.getByRole( 'button', { name: 'List View' } ).click(); | ^ 29 | 30 | // Select and try to remove Query Loop block 31 | const listView = page.getByRole( 'region', { name: 'List View' } ); at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/site-editor/block-removal.spec.js:28:61
[chromium] › site-editor/block-removal.spec.js:23:2 › Site editor block removal prompt › should appear when attempting to remove Query Block: test/e2e/specs/site-editor/block-removal.spec.js#L28
2) [chromium] › site-editor/block-removal.spec.js:23:2 › Site editor block removal prompt › should appear when attempting to remove Query Block Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) resolved to 2 elements: 1) <button id=":rk:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).first() 2) <button id=":rq:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).nth(1) =========================== logs =========================== waiting for getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) ============================================================ 26 | // Open and focus List View 27 | const topBar = page.getByRole( 'region', { name: 'Editor top bar' } ); > 28 | await topBar.getByRole( 'button', { name: 'List View' } ).click(); | ^ 29 | 30 | // Select and try to remove Query Loop block 31 | const listView = page.getByRole( 'region', { name: 'List View' } ); at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/site-editor/block-removal.spec.js:28:61
[chromium] › site-editor/block-removal.spec.js:23:2 › Site editor block removal prompt › should appear when attempting to remove Query Block: test/e2e/specs/site-editor/block-removal.spec.js#L28
2) [chromium] › site-editor/block-removal.spec.js:23:2 › Site editor block removal prompt › should appear when attempting to remove Query Block Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) resolved to 2 elements: 1) <button id=":rk:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).first() 2) <button id=":rq:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).nth(1) =========================== logs =========================== waiting for getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) ============================================================ 26 | // Open and focus List View 27 | const topBar = page.getByRole( 'region', { name: 'Editor top bar' } ); > 28 | await topBar.getByRole( 'button', { name: 'List View' } ).click(); | ^ 29 | 30 | // Select and try to remove Query Loop block 31 | const listView = page.getByRole( 'region', { name: 'List View' } ); at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/site-editor/block-removal.spec.js:28:61
[chromium] › site-editor/block-removal.spec.js:41:2 › Site editor block removal prompt › should appear when attempting to remove Post Template Block: test/e2e/specs/site-editor/block-removal.spec.js#L46
3) [chromium] › site-editor/block-removal.spec.js:41:2 › Site editor block removal prompt › should appear when attempting to remove Post Template Block Error: locator.click: Error: strict mode violation: getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) resolved to 2 elements: 1) <button id=":rk:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).first() 2) <button id=":rq:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).nth(1) =========================== logs =========================== waiting for getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) ============================================================ 44 | // Open and focus List View 45 | const topBar = page.getByRole( 'region', { name: 'Editor top bar' } ); > 46 | await topBar.getByRole( 'button', { name: 'List View' } ).click(); | ^ 47 | 48 | // Select and open child blocks of Query Loop block 49 | const listView = page.getByRole( 'region', { name: 'List View' } ); at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/site-editor/block-removal.spec.js:46:61
[chromium] › site-editor/block-removal.spec.js:41:2 › Site editor block removal prompt › should appear when attempting to remove Post Template Block: test/e2e/specs/site-editor/block-removal.spec.js#L46
3) [chromium] › site-editor/block-removal.spec.js:41:2 › Site editor block removal prompt › should appear when attempting to remove Post Template Block Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) resolved to 2 elements: 1) <button id=":rk:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).first() 2) <button id=":rq:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).nth(1) =========================== logs =========================== waiting for getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) ============================================================ 44 | // Open and focus List View 45 | const topBar = page.getByRole( 'region', { name: 'Editor top bar' } ); > 46 | await topBar.getByRole( 'button', { name: 'List View' } ).click(); | ^ 47 | 48 | // Select and open child blocks of Query Loop block 49 | const listView = page.getByRole( 'region', { name: 'List View' } ); at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/site-editor/block-removal.spec.js:46:61
[chromium] › site-editor/block-removal.spec.js:41:2 › Site editor block removal prompt › should appear when attempting to remove Post Template Block: test/e2e/specs/site-editor/block-removal.spec.js#L46
3) [chromium] › site-editor/block-removal.spec.js:41:2 › Site editor block removal prompt › should appear when attempting to remove Post Template Block Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) resolved to 2 elements: 1) <button id=":rk:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).first() 2) <button id=":rq:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).nth(1) =========================== logs =========================== waiting for getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) ============================================================ 44 | // Open and focus List View 45 | const topBar = page.getByRole( 'region', { name: 'Editor top bar' } ); > 46 | await topBar.getByRole( 'button', { name: 'List View' } ).click(); | ^ 47 | 48 | // Select and open child blocks of Query Loop block 49 | const listView = page.getByRole( 'region', { name: 'List View' } ); at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/site-editor/block-removal.spec.js:46:61
[chromium] › site-editor/block-removal.spec.js:65:2 › Site editor block removal prompt › should not appear when attempting to remove something else: test/e2e/specs/site-editor/block-removal.spec.js#L71
4) [chromium] › site-editor/block-removal.spec.js:65:2 › Site editor block removal prompt › should not appear when attempting to remove something else Error: locator.click: Error: strict mode violation: getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) resolved to 2 elements: 1) <button id=":rk:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).first() 2) <button id=":rq:" type="button" tabindex="-1" data-comma…>…</button> aka getByRole('button', { name: 'List View' }).nth(1) =========================== logs =========================== waiting for getByRole('region', { name: 'Editor top bar' }).getByRole('button', { name: 'List View' }) ============================================================ 69 | // Open and focus List View 70 | const topBar = page.getByRole( 'region', { name: 'Editor top bar' } ); > 71 | await topBar.getByRole( 'button', { name: 'List View' } ).click(); | ^ 72 | 73 | // Select Query Loop list item 74 | const listView = page.getByRole( 'region', { name: 'List View' } ); at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/site-editor/block-removal.spec.js:71:61
[chromium] › editor/various/navigable-toolbar.spec.js:49:2 › Block Toolbar › should focus with Shift+Tab: test/e2e/specs/editor/various/navigable-toolbar.spec.js#L61
1) [chromium] › editor/various/navigable-toolbar.spec.js:49:2 › Block Toolbar › should focus with Shift+Tab Error: expect(received).toBeFocused() Call log: - expect.toBeFocused with timeout 5000ms - waiting for getByRole('toolbar', { name: 'Block Tools' }).getByRole('button', { name: 'Paragraph' }) - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - waiting for getByRole('toolbar', { name: 'Block Tools' }).getByRole('button', { name: 'Paragraph' }) - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" 59 | .getByRole( 'toolbar', { name: 'Block Tools' } ) 60 | .getByRole( 'button', { name: 'Paragraph' } ) > 61 | ).toBeFocused(); | ^ 62 | } ); 63 | } ); 64 | at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/navigable-toolbar.spec.js:61:5
[chromium] › editor/various/navigable-toolbar.spec.js:49:2 › Block Toolbar › should focus with Shift+Tab: test/e2e/specs/editor/various/navigable-toolbar.spec.js#L61
1) [chromium] › editor/various/navigable-toolbar.spec.js:49:2 › Block Toolbar › should focus with Shift+Tab Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBeFocused() Call log: - expect.toBeFocused with timeout 5000ms - waiting for getByRole('toolbar', { name: 'Block Tools' }).getByRole('button', { name: 'Paragraph' }) - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - waiting for getByRole('toolbar', { name: 'Block Tools' }).getByRole('button', { name: 'Paragraph' }) - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" 59 | .getByRole( 'toolbar', { name: 'Block Tools' } ) 60 | .getByRole( 'button', { name: 'Paragraph' } ) > 61 | ).toBeFocused(); | ^ 62 | } ); 63 | } ); 64 | at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/navigable-toolbar.spec.js:61:5
[chromium] › editor/various/navigable-toolbar.spec.js:49:2 › Block Toolbar › should focus with Shift+Tab: test/e2e/specs/editor/various/navigable-toolbar.spec.js#L61
1) [chromium] › editor/various/navigable-toolbar.spec.js:49:2 › Block Toolbar › should focus with Shift+Tab Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBeFocused() Call log: - expect.toBeFocused with timeout 5000ms - waiting for getByRole('toolbar', { name: 'Block Tools' }).getByRole('button', { name: 'Paragraph' }) - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - waiting for getByRole('toolbar', { name: 'Block Tools' }).getByRole('button', { name: 'Paragraph' }) - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" - locator resolved to <button id=":rm:" type="button" data-command="" data-act…>…</button> - unexpected value "not focused" 59 | .getByRole( 'toolbar', { name: 'Block Tools' } ) 60 | .getByRole( 'button', { name: 'Paragraph' } ) > 61 | ).toBeFocused(); | ^ 62 | } ); 63 | } ); 64 | at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/navigable-toolbar.spec.js:61:5
[chromium] › editor/various/preview.spec.js:222:2 › Preview with Custom Fields enabled › displays edits to the post title and content in the preview: test/e2e/specs/editor/various/preview.spec.js#L325
2) [chromium] › editor/various/preview.spec.js:222:2 › Preview with Custom Fields enabled › displays edits to the post title and content in the preview Error: page.click: Error: strict mode violation: locator('role=region[name="Editor top bar"i]').locator('role=button[name="Options"i]') resolved to 2 elements: 1) <button id=":r1j:" type="button" tabindex="-1" data-comm…>…</button> aka getByRole('toolbar', { name: 'Block tools' }).getByRole('button', { name: 'Options' }) 2) <button type="button" aria-haspopup="true" aria-label="O…>…</button> aka locator('div').filter({ hasText: /^Preview\(opens in a new tab\)Update$/ }).getByRole('button', { name: 'Options' }) =========================== logs =========================== waiting for locator('role=region[name="Editor top bar"i]').locator('role=button[name="Options"i]') ============================================================ 323 | // Open preferences dialog. 324 | > 325 | await this.page.click( | ^ 326 | 'role=region[name="Editor top bar"i] >> role=button[name="Options"i]' 327 | ); 328 | await this.page.click( 'role=menuitem[name="Preferences"i]' ); at PreviewUtils.toggleCustomFieldsOption (/home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/preview.spec.js:325:19) at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/preview.spec.js:218:22
[chromium] › editor/various/preview.spec.js:222:2 › Preview with Custom Fields enabled › displays edits to the post title and content in the preview: test/e2e/specs/editor/various/preview.spec.js#L325
2) [chromium] › editor/various/preview.spec.js:222:2 › Preview with Custom Fields enabled › displays edits to the post title and content in the preview Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.click: Error: strict mode violation: locator('role=region[name="Editor top bar"i]').locator('role=button[name="Options"i]') resolved to 2 elements: 1) <button id=":r1j:" type="button" tabindex="-1" data-comm…>…</button> aka getByRole('toolbar', { name: 'Block tools' }).getByRole('button', { name: 'Options' }) 2) <button type="button" aria-haspopup="true" aria-label="O…>…</button> aka locator('div').filter({ hasText: /^Preview\(opens in a new tab\)Update$/ }).getByRole('button', { name: 'Options' }) =========================== logs =========================== waiting for locator('role=region[name="Editor top bar"i]').locator('role=button[name="Options"i]') ============================================================ 323 | // Open preferences dialog. 324 | > 325 | await this.page.click( | ^ 326 | 'role=region[name="Editor top bar"i] >> role=button[name="Options"i]' 327 | ); 328 | await this.page.click( 'role=menuitem[name="Preferences"i]' ); at PreviewUtils.toggleCustomFieldsOption (/home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/preview.spec.js:325:19) at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/preview.spec.js:218:22
[chromium] › editor/various/preview.spec.js:222:2 › Preview with Custom Fields enabled › displays edits to the post title and content in the preview: test/e2e/specs/editor/various/preview.spec.js#L325
2) [chromium] › editor/various/preview.spec.js:222:2 › Preview with Custom Fields enabled › displays edits to the post title and content in the preview Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.click: Error: strict mode violation: locator('role=region[name="Editor top bar"i]').locator('role=button[name="Options"i]') resolved to 2 elements: 1) <button id=":r1j:" type="button" tabindex="-1" data-comm…>…</button> aka getByRole('toolbar', { name: 'Block tools' }).getByRole('button', { name: 'Options' }) 2) <button type="button" aria-haspopup="true" aria-label="O…>…</button> aka locator('div').filter({ hasText: /^Preview\(opens in a new tab\)Update$/ }).getByRole('button', { name: 'Options' }) =========================== logs =========================== waiting for locator('role=region[name="Editor top bar"i]').locator('role=button[name="Options"i]') ============================================================ 323 | // Open preferences dialog. 324 | > 325 | await this.page.click( | ^ 326 | 'role=region[name="Editor top bar"i] >> role=button[name="Options"i]' 327 | ); 328 | await this.page.click( 'role=menuitem[name="Preferences"i]' ); at PreviewUtils.toggleCustomFieldsOption (/home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/preview.spec.js:325:19) at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/preview.spec.js:218:22
[chromium] › editor/various/rich-text.spec.js:569:2 › RichText › should preserve internal formatting: test/e2e/specs/editor/various/rich-text.spec.js#L619
3) [chromium] › editor/various/rich-text.spec.js:569:2 › RichText › should preserve internal formatting Error: expect(received).toMatchObject(expected) - Expected - 6 + Received + 4 Array [ Object { "attributes": Object { "content": "<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-cyan-bluish-gray-color\">1</mark>", + "dropCap": false, }, - "name": "core/paragraph", - }, - Object { - "attributes": Object { - "content": "<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-cyan-bluish-gray-color\">1</mark>", - }, + "clientId": "8c08c4f5-c277-4815-86ca-c7844212cc22", + "innerBlocks": Array [], + "isValid": true, "name": "core/paragraph", }, ] 617 | await pageUtils.pressKeys( 'primary+v' ); 618 | > 619 | expect( await editor.getBlocks() ).toMatchObject( | ^ 620 | Array( 2 ).fill( result ) 621 | ); 622 | } ); at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/rich-text.spec.js:619:38
[chromium] › editor/various/rich-text.spec.js:569:2 › RichText › should preserve internal formatting: test/e2e/specs/editor/various/rich-text.spec.js#L619
3) [chromium] › editor/various/rich-text.spec.js:569:2 › RichText › should preserve internal formatting Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toMatchObject(expected) - Expected - 6 + Received + 4 Array [ Object { "attributes": Object { "content": "<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-cyan-bluish-gray-color\">1</mark>", + "dropCap": false, }, - "name": "core/paragraph", - }, - Object { - "attributes": Object { - "content": "<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-cyan-bluish-gray-color\">1</mark>", - }, + "clientId": "92feb0ec-b821-413b-b9f1-e5fcedab8f36", + "innerBlocks": Array [], + "isValid": true, "name": "core/paragraph", }, ] 617 | await pageUtils.pressKeys( 'primary+v' ); 618 | > 619 | expect( await editor.getBlocks() ).toMatchObject( | ^ 620 | Array( 2 ).fill( result ) 621 | ); 622 | } ); at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/rich-text.spec.js:619:38
[chromium] › editor/various/rich-text.spec.js:569:2 › RichText › should preserve internal formatting: test/e2e/specs/editor/various/rich-text.spec.js#L619
3) [chromium] › editor/various/rich-text.spec.js:569:2 › RichText › should preserve internal formatting Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toMatchObject(expected) - Expected - 6 + Received + 4 Array [ Object { "attributes": Object { "content": "<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-cyan-bluish-gray-color\">1</mark>", + "dropCap": false, }, - "name": "core/paragraph", - }, - Object { - "attributes": Object { - "content": "<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-cyan-bluish-gray-color\">1</mark>", - }, + "clientId": "fa748d01-b3b8-4896-90cb-8ccff6293134", + "innerBlocks": Array [], + "isValid": true, "name": "core/paragraph", }, ] 617 | await pageUtils.pressKeys( 'primary+v' ); 618 | > 619 | expect( await editor.getBlocks() ).toMatchObject( | ^ 620 | Array( 2 ).fill( result ) 621 | ); 622 | } ); at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/rich-text.spec.js:619:38
Playwright - 2
Process completed with exit code 1.
[chromium] › editor/blocks/image.spec.js:217:2 › Image › allows zooming using the crop tools: test/e2e/specs/editor/blocks/image.spec.js#L269
1) [chromium] › editor/blocks/image.spec.js:217:2 › Image › allows zooming using the crop tools ── TimeoutError: locator.getAttribute: Timeout 10000ms exceeded. =========================== logs =========================== waiting for locator('role=document[name="Block: Image"i]').locator('role=img') ============================================================ 267 | 268 | // Assert that the image is edited. > 269 | const updatedImageSrc = await image.getAttribute( 'src' ); | ^ 270 | expect( initialImageSrc ).not.toEqual( updatedImageSrc ); 271 | 272 | await expect at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/blocks/image.spec.js:269:39
[chromium] › editor/blocks/image.spec.js:217:2 › Image › allows zooming using the crop tools: test/e2e/specs/editor/blocks/image.spec.js#L269
1) [chromium] › editor/blocks/image.spec.js:217:2 › Image › allows zooming using the crop tools ── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── TimeoutError: locator.getAttribute: Timeout 10000ms exceeded. =========================== logs =========================== waiting for locator('role=document[name="Block: Image"i]').locator('role=img') ============================================================ 267 | 268 | // Assert that the image is edited. > 269 | const updatedImageSrc = await image.getAttribute( 'src' ); | ^ 270 | expect( initialImageSrc ).not.toEqual( updatedImageSrc ); 271 | 272 | await expect at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/blocks/image.spec.js:269:39
[chromium] › editor/blocks/image.spec.js:217:2 › Image › allows zooming using the crop tools: test/e2e/specs/editor/blocks/image.spec.js#L269
1) [chromium] › editor/blocks/image.spec.js:217:2 › Image › allows zooming using the crop tools ── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── TimeoutError: locator.getAttribute: Timeout 10000ms exceeded. =========================== logs =========================== waiting for locator('role=document[name="Block: Image"i]').locator('role=img') ============================================================ 267 | 268 | // Assert that the image is edited. > 269 | const updatedImageSrc = await image.getAttribute( 'src' ); | ^ 270 | expect( initialImageSrc ).not.toEqual( updatedImageSrc ); 271 | 272 | await expect at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/blocks/image.spec.js:269:39
[chromium] › editor/blocks/image.spec.js:284:2 › Image › allows changing aspect ratio using the crop tools: test/e2e/specs/editor/blocks/image.spec.js#L326
2) [chromium] › editor/blocks/image.spec.js:284:2 › Image › allows changing aspect ratio using the crop tools TimeoutError: locator.getAttribute: Timeout 10000ms exceeded. =========================== logs =========================== waiting for locator('role=document[name="Block: Image"i]').locator('role=img') ============================================================ 324 | 325 | // Assert that the image is edited. > 326 | const updatedImageSrc = await image.getAttribute( 'src' ); | ^ 327 | expect( updatedImageSrc ).not.toEqual( initialImageSrc ); 328 | 329 | await expect at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/blocks/image.spec.js:326:39
[chromium] › editor/blocks/image.spec.js:284:2 › Image › allows changing aspect ratio using the crop tools: test/e2e/specs/editor/blocks/image.spec.js#L326
2) [chromium] › editor/blocks/image.spec.js:284:2 › Image › allows changing aspect ratio using the crop tools Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── TimeoutError: locator.getAttribute: Timeout 10000ms exceeded. =========================== logs =========================== waiting for locator('role=document[name="Block: Image"i]').locator('role=img') ============================================================ 324 | 325 | // Assert that the image is edited. > 326 | const updatedImageSrc = await image.getAttribute( 'src' ); | ^ 327 | expect( updatedImageSrc ).not.toEqual( initialImageSrc ); 328 | 329 | await expect at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/blocks/image.spec.js:326:39
[chromium] › editor/blocks/image.spec.js:284:2 › Image › allows changing aspect ratio using the crop tools: test/e2e/specs/editor/blocks/image.spec.js#L326
2) [chromium] › editor/blocks/image.spec.js:284:2 › Image › allows changing aspect ratio using the crop tools Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── TimeoutError: locator.getAttribute: Timeout 10000ms exceeded. =========================== logs =========================== waiting for locator('role=document[name="Block: Image"i]').locator('role=img') ============================================================ 324 | 325 | // Assert that the image is edited. > 326 | const updatedImageSrc = await image.getAttribute( 'src' ); | ^ 327 | expect( updatedImageSrc ).not.toEqual( initialImageSrc ); 328 | 329 | await expect at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/blocks/image.spec.js:326:39
[chromium] › editor/blocks/image.spec.js:341:2 › Image › allows rotating using the crop tools: test/e2e/specs/editor/blocks/image.spec.js#L371
3) [chromium] › editor/blocks/image.spec.js:341:2 › Image › allows rotating using the crop tools ─ TimeoutError: locator.getAttribute: Timeout 10000ms exceeded. =========================== logs =========================== waiting for locator('role=document[name="Block: Image"i]').locator('role=img') ============================================================ 369 | 370 | // Assert that the image is edited. > 371 | const updatedImageSrc = await image.getAttribute( 'src' ); | ^ 372 | 373 | expect( 374 | await imageBlockUtils.getImageBuffer( updatedImageSrc ) at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/blocks/image.spec.js:371:39
[chromium] › editor/blocks/image.spec.js:341:2 › Image › allows rotating using the crop tools: test/e2e/specs/editor/blocks/image.spec.js#L371
3) [chromium] › editor/blocks/image.spec.js:341:2 › Image › allows rotating using the crop tools ─ Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── TimeoutError: locator.getAttribute: Timeout 10000ms exceeded. =========================== logs =========================== waiting for locator('role=document[name="Block: Image"i]').locator('role=img') ============================================================ 369 | 370 | // Assert that the image is edited. > 371 | const updatedImageSrc = await image.getAttribute( 'src' ); | ^ 372 | 373 | expect( 374 | await imageBlockUtils.getImageBuffer( updatedImageSrc ) at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/blocks/image.spec.js:371:39
[chromium] › editor/blocks/image.spec.js:341:2 › Image › allows rotating using the crop tools: test/e2e/specs/editor/blocks/image.spec.js#L371
3) [chromium] › editor/blocks/image.spec.js:341:2 › Image › allows rotating using the crop tools ─ Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── TimeoutError: locator.getAttribute: Timeout 10000ms exceeded. =========================== logs =========================== waiting for locator('role=document[name="Block: Image"i]').locator('role=img') ============================================================ 369 | 370 | // Assert that the image is edited. > 371 | const updatedImageSrc = await image.getAttribute( 'src' ); | ^ 372 | 373 | expect( 374 | await imageBlockUtils.getImageBuffer( updatedImageSrc ) at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/blocks/image.spec.js:371:39
Playwright - 1
Process completed with exit code 1.
🎭 Playwright Run Summary
14 failed [chromium] › editor/various/toolbar-roving-tabindex.spec.js:19:2 › Toolbar roving tabindex › ensures base block toolbars use roving tabindex [chromium] › site-editor/block-removal.spec.js:23:2 › Site editor block removal prompt › should appear when attempting to remove Query Block [chromium] › site-editor/block-removal.spec.js:41:2 › Site editor block removal prompt › should appear when attempting to remove Post Template Block [chromium] › site-editor/block-removal.spec.js:65:2 › Site editor block removal prompt › should not appear when attempting to remove something else [chromium] › site-editor/pages.spec.js:19:2 › Pages › create a new page ──────────────────────── [chromium] › site-editor/site-editor-inserter.spec.js:24:2 › Site Editor Inserter › inserter toggle button should toggle global inserter [chromium] › site-editor/site-editor-inserter.spec.js:45:2 › Site Editor Inserter › should close the inserter when clicking on the toggle button [chromium] › site-editor/template-part.spec.js:361:2 › Template Part › Keeps focus in place on undo in template parts [chromium] › site-editor/writing-flow.spec.js:16:2 › Site editor writing flow › allows shift tabbing to the block toolbar from the first block [chromium] › widgets/customizing-widgets.spec.js:103:2 › Widgets Customizer › should open the inspector panel [chromium] › widgets/customizing-widgets.spec.js:346:2 › Widgets Customizer › should handle legacy widgets [chromium] › widgets/customizing-widgets.spec.js:438:2 › Widgets Customizer › should handle esc key events [chromium] › widgets/customizing-widgets.spec.js:481:2 › Widgets Customizer › should move (inner) blocks to another sidebar [chromium] › widgets/customizing-widgets.spec.js:536:2 › Widgets Customizer › should stay in block settings after making a change in that area 1 skipped 207 passed (19.4m)
🎭 Playwright Run Summary
2 skipped 219 passed (20.6m)
🎭 Playwright Run Summary
3 failed [chromium] › editor/various/navigable-toolbar.spec.js:49:2 › Block Toolbar › should focus with Shift+Tab [chromium] › editor/various/preview.spec.js:222:2 › Preview with Custom Fields enabled › displays edits to the post title and content in the preview [chromium] › editor/various/rich-text.spec.js:569:2 › RichText › should preserve internal formatting 222 passed (22.9m)
🎭 Playwright Run Summary
3 failed [chromium] › editor/blocks/image.spec.js:217:2 › Image › allows zooming using the crop tools ─── [chromium] › editor/blocks/image.spec.js:284:2 › Image › allows changing aspect ratio using the crop tools [chromium] › editor/blocks/image.spec.js:341:2 › Image › allows rotating using the crop tools ── 222 passed (23.8m)

Artifacts

Produced during runtime
Name Size
failures-artifacts Expired
106 MB
flaky-tests-report Expired
9.3 KB