Skip to content

UI Tests

UI Tests #43

Triggered via push January 7, 2025 15:21
Status Failure
Total duration 40m 51s
Artifacts 4

galata.yml

on: push
Visual Regression Tests
40m 28s
Visual Regression Tests
Matrix: Visual Regression Documentation
Fit to window
Zoom out
Zoom in

Annotations

13 errors and 2 notices
[documentation] › test/documentation/debugger.test.ts:100:7 › Debugger › Stop on breakpoint: core/galata/src/helpers/notebook.ts#L456
1) [documentation] › test/documentation/debugger.test.ts:100:7 › Debugger › Stop on breakpoint ─── Error: page.waitForTimeout: Test ended. at src/helpers/notebook.ts:456 454 | let done = false; 455 | do { > 456 | await this.page.waitForTimeout(20); | ^ 457 | done = await this.page.evaluate(cellIdx => { 458 | return window.galata.haveBeenExecuted(cellIdx); 459 | }, cellIndex); at NotebookHelper.waitForRun (/home/runner/work/jupyterlab/jupyterlab/core/galata/src/helpers/notebook.ts:456:23) at NotebookHelper.runCell (/home/runner/work/jupyterlab/jupyterlab/core/galata/src/helpers/notebook.ts:1411:5)
[documentation] › test/documentation/debugger.test.ts:126:7 › Debugger › Breakpoints on exception: core/galata/test/documentation/debugger.test.ts#L189
2) [documentation] › test/documentation/debugger.test.ts:126:7 › Debugger › Breakpoints on exception Error: Screenshot comparison failed: 366 pixels (ratio 0.02 of all image pixels) are different. Expected: /home/runner/work/jupyterlab/jupyterlab/core/galata/test/documentation/debugger.test.ts-snapshots/debugger-stop-on-raised-exception-documentation-linux.png Received: /home/runner/work/jupyterlab/jupyterlab/core/galata/test-results/test-documentation-debugge-b2db7-er-Breakpoints-on-exception-documentation/debugger-stop-on-raised-exception-actual.png Diff: /home/runner/work/jupyterlab/jupyterlab/core/galata/test-results/test-documentation-debugge-b2db7-er-Breakpoints-on-exception-documentation/debugger-stop-on-raised-exception-diff.png 187 | clip: { y: 110, x: 300, width: 300, height: 80 } 188 | }) > 189 | ).toMatchSnapshot('debugger_stop_on_raised_exception.png'); | ^ 190 | await page.click('jp-button[title^=Continue]'); 191 | await page.click('jp-button[title^=Continue]'); 192 | }); at /home/runner/work/jupyterlab/jupyterlab/core/galata/test/documentation/debugger.test.ts:189:7
[documentation] › test/documentation/debugger.test.ts:126:7 › Debugger › Breakpoints on exception: core/galata/src/helpers/notebook.ts#L456
2) [documentation] › test/documentation/debugger.test.ts:126:7 › Debugger › Breakpoints on exception Error: page.waitForTimeout: Test ended. at src/helpers/notebook.ts:456 454 | let done = false; 455 | do { > 456 | await this.page.waitForTimeout(20); | ^ 457 | done = await this.page.evaluate(cellIdx => { 458 | return window.galata.haveBeenExecuted(cellIdx); 459 | }, cellIndex); at NotebookHelper.waitForRun (/home/runner/work/jupyterlab/jupyterlab/core/galata/src/helpers/notebook.ts:456:23) at NotebookHelper.runCell (/home/runner/work/jupyterlab/jupyterlab/core/galata/src/helpers/notebook.ts:1411:5)
[jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:84:5 › should not update height when hiding: galata/test/jupyterlab/windowed-notebook.test.ts#L106
1) [jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:84:5 › should not update height when hiding Error: expect(received).toEqual(expected) // deep equality Expected: 2507 Received: 4240 104 | const innerHeight = await getInnerHeight(notebook!); 105 | > 106 | expect(innerHeight).toEqual(initialHeight); | ^ 107 | }); 108 | 109 | test('should hide first inactive code cell when scrolling down', async ({ at /home/runner/work/jupyterlab/jupyterlab/galata/test/jupyterlab/windowed-notebook.test.ts:106:23
[jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:84:5 › should not update height when hiding: galata/test/jupyterlab/windowed-notebook.test.ts#L106
1) [jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:84:5 › should not update height when hiding Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toEqual(expected) // deep equality Expected: 2507 Received: 4240 104 | const innerHeight = await getInnerHeight(notebook!); 105 | > 106 | expect(innerHeight).toEqual(initialHeight); | ^ 107 | }); 108 | 109 | test('should hide first inactive code cell when scrolling down', async ({ at /home/runner/work/jupyterlab/jupyterlab/galata/test/jupyterlab/windowed-notebook.test.ts:106:23
[galata] › test/galata/fixture.spec.ts:38:7 › mockSettings › should not return mocked settings after save: galata/test/galata/fixture.spec.ts#L56
2) [galata] › test/galata/fixture.spec.ts:38:7 › mockSettings › should not return mocked settings after save Error: expect(received).toEqual(expected) // deep equality Expected: "JupyterLab Light" Received: "JupyterLab Dark" 54 | expect(((await response.json()) as any).raw).toMatch(/JupyterLab Light/); 55 | > 56 | expect(await page.theme.getTheme()).toEqual('JupyterLab Light'); | ^ 57 | }); 58 | }); 59 | at /home/runner/work/jupyterlab/jupyterlab/galata/test/galata/fixture.spec.ts:56:41
[jupyterlab] › test/jupyterlab/metadataform.test.ts:391:7 › Default metadata without "showModified" flag › should not display the modified field: galata/src/galata.ts#L891
3) [jupyterlab] › test/jupyterlab/metadataform.test.ts:391:7 › Default metadata without "showModified" flag › should not display the modified field Error: "apiRequestContext.fetch: Target page, context or browser has been closed Call log: - → GET http://localhost:8888/api/sessions?1736264293369 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/130.0.6723.31 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - accept-language: en-US - content-type: application/json - cookie: username-localhost-8888="2|1:0|10:1736264289|23:username-localhost-8888|200:eyJ1c2VybmFtZSI6ICI2NzAxNWNmYzJmYTg0OWJiOGYzMWQ2MmYxMTNlZTdkYiIsICJuYW1lIjogIkFub255bW91cyBQYXNpcGhhZSIsICJkaXNwbGF5X25hbWUiOiAiQW5vbnltb3VzIFBhc2lwaGFlIiwgImluaXRpYWxzIjogIkFQIiwgImNvbG9yIjogbnVsbH0=|25395a099f99ad112e9ba84d3bd0c3aacea32e19f5b089261961c13c4c166fc0"; _xsrf=2|4f8023ae|1768b9efc52318ec9fcb5de4caca8aef|1736264289 - referer: http://localhost:8888/lab/tree/metadataform-test/code_notebook.ipynb - x-xsrftoken: 2|4f8023ae|1768b9efc52318ec9fcb5de4caca8aef|1736264289 - sec-ch-ua: "Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99" - sec-ch-ua-mobile: ?0 - sec-ch-ua-platform: "Linux" " while running route callback. Consider awaiting `await page.unrouteAll({ behavior: 'ignoreErrors' })` before the end of the test to ignore remaining routes in flight. at src/galata.ts:891 889 | } else { 890 | // Proxy the GET request > 891 | const response = await ctxt.request.fetch(request); | ^ 892 | if (!response.ok()) { 893 | if (!page.isClosed() && !isClosed) { 894 | return route.fulfill({ at /home/runner/work/jupyterlab/jupyterlab/galata/src/galata.ts:891:51
[jupyterlab] › test/jupyterlab/notebook-scroll-no-windowing.test.ts:181:7 › Notebook scroll on execution (no windowing) › should scroll when advancing if top is only marginally visible: galata/test/jupyterlab/notebook-scroll-no-windowing.test.ts#L203
4) [jupyterlab] › test/jupyterlab/notebook-scroll-no-windowing.test.ts:181:7 › Notebook scroll on execution (no windowing) › should scroll when advancing if top is only marginally visible Error: Timed out 5000ms waiting for expect(locator).toBeInViewport() Locator: getByRole('main').locator('[role="tabpanel"][id="id-650280ad-a207-4fae-abc8-9439d879fd81"]').locator('.jp-NotebookPanel-notebook').first().locator('.jp-Cell[data-windowed-list-index="2"]') Expected: in viewport Received: outside viewport Call log: - expect.toBeInViewport with timeout 5000ms - waiting for getByRole('main').locator('[role="tabpanel"][id="id-650280ad-a207-4fae-abc8-9439d879fd81"]').locator('.jp-NotebookPanel-notebook').first().locator('.jp-Cell[data-windowed-list-index="2"]') - locator resolved to <div tabindex="0" data-windowed-list-index="2" aria-label="Code Cell Content with Output" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-selected jp-mod-active">…</div> - unexpected value "viewport ratio 0.009747706353664398" - locator resolved to <div tabindex="0" data-windowed-list-index="2" aria-label="Code Cell Content with Output" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-selected jp-mod-active">…</div> - unexpected value "viewport ratio 0.009747706353664398" - locator resolved to <div tabindex="0" data-windowed-list-index="2" aria-label="Code Cell Content with Output" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-selected jp-mod-active">…</div> - unexpected value "viewport ratio 0.009747706353664398" - locator resolved to <div tabindex="0" data-windowed-list-index="2" aria-label="Code Cell Content with Output" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-selected jp-mod-active">…</div> - unexpected value "viewport ratio 0.009747706353664398" - locator resolved to <div tabindex="0" data-windowed-list-index="2" aria-label="Code Cell Content with Output" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-selected jp-mod-active">…</div> - unexpected value "viewport ratio 0.009747706353664398" - locator resolved to <div tabindex="0" data-windowed-list-index="2" aria-label="Code Cell Content with Output" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-selected jp-mod-active">…</div> - unexpected value "viewport ratio 0.009747706353664398" - locator resolved to <div tabindex="0" data-windowed-list-index="2" aria-label="Code Cell Content with Output" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-selected jp-mod-active">…</div> - unexpected value "viewport ratio 0.009747706353664398" - locator resolved to <div tabindex="0" data-windowed-list-index="2" aria-label="Code Cell Content with Output" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-selected jp-mod-active">…</div> - unexpected value "viewport ratio 0.009747706353664398" - locator resolved to <div tabindex="0" data-windowed-list-index="2" aria-label="Code Cell Content with Output" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-selected jp-mod-active">…</div> - unexpected value "viewport ratio 0.009747706353664398" 201 | 202 | // After running the second cell, the third cell should be revealed, in at least 10% > 203 | await expect(thirdCell!).toBeInViewport({ ratio: 0.1 }); | ^ 204 | 205 | // The third cell should now occupy about half of the notebook viewport 206 | expect(await notebookViewportRatio(notebook!, thirdCell!)).toBeGreaterThan( at /home/runner/work/jupyterlab/jupyterlab/galata/test/jupyterlab/notebook-scroll-no-windowing.test.ts:203:30
[jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:401:5 › should display cells below on scrolling after inserting a cell on top: galata/test/jupyterlab/windowed-notebook.test.ts#L1
5) [jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:401:5 › should display cells below on scrolling after inserting a cell on top Test timeout of 60000ms exceeded.
[jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:401:5 › should display cells below on scrolling after inserting a cell on top: galata/test/jupyterlab/windowed-notebook.test.ts#L424
5) [jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:401:5 › should display cells below on scrolling after inserting a cell on top Error: locator.waitFor: Test timeout of 60000ms exceeded. Call log: - waiting for getByRole('main').locator('[role="tabpanel"][id="id-1d861ee6-f190-4c6f-86a0-747075368ccd"]').locator('.jp-NotebookPanel-notebook').first().locator('.jp-Cell[data-windowed-list-index="18"]') to be visible - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell Content" class="lm-Widget jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">…</div> - locator resolved to hidden <div tabindex="-1" data-windowed-list-index="18" aria-label="Code Cell C
[jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:523:5 › should rendered injected HTML scripts of out-of-viewport cells: galata/test/jupyterlab/windowed-notebook.test.ts#L538
6) [jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:523:5 › should rendered injected HTML scripts of out-of-viewport cells Error: expect(received).toBeGreaterThan(expected) Expected: > 1 Received: 0 536 | expect( 537 | await page.getByText('JavaScript injected from HTML').count() > 538 | ).toBeGreaterThan(1); | ^ 539 | }); 540 | 541 | test('should rendered injected JavaScript snippets of out-of-viewport cells', async ({ at /home/runner/work/jupyterlab/jupyterlab/galata/test/jupyterlab/windowed-notebook.test.ts:538:5
[jupyterlab] › test/jupyterlab/workspace.test.ts:317:7 › Workspace in doc mode › should restore workspace when switching back to lab mode: galata/src/galata.ts#L961
7) [jupyterlab] › test/jupyterlab/workspace.test.ts:317:7 › Workspace in doc mode › should restore workspace when switching back to lab mode Error: "apiRequestContext.fetch: Target page, context or browser has been closed Call log: - → POST http://localhost:8888/api/sessions?1736265605131 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/130.0.6723.31 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - accept-language: en-US - content-type: text/plain;charset=UTF-8 - cookie: username-localhost-8888="2|1:0|10:1736265600|23:username-localhost-8888|204:eyJ1c2VybmFtZSI6ICJjNGVhNWFhNTMwNDk0Yjk5OGEzNDZlMzJkMGYzZGE3NSIsICJuYW1lIjogIkFub255bW91cyBQcmF4aWRpa2UiLCAiZGlzcGxheV9uYW1lIjogIkFub255bW91cyBQcmF4aWRpa2UiLCAiaW5pdGlhbHMiOiAiQVAiLCAiY29sb3IiOiBudWxsfQ==|b7a7f13e2c92f0bfe1cbaaf899ba4acc6d99394f09bef5c0b22dad80486e8a1a"; _xsrf=2|c2ca20cf|3690f3af05be31712e5fe445138b50d0|1736265600 - origin: http://localhost:8888 - referer: http://localhost:8888/lab/tree/workspace-test/simple_notebook.ipynb - x-xsrftoken: 2|c2ca20cf|3690f3af05be31712e5fe445138b50d0|1736265600 - sec-ch-ua: "Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99" - sec-ch-ua-mobile: ?0 - sec-ch-ua-platform: "Linux" - content-length: 139 " while running route callback. Consider awaiting `await page.unrouteAll({ behavior: 'ignoreErrors' })` before the end of the test to ignore remaining routes in flight. at src/galata.ts:961 959 | case 'POST': { 960 | // Proxy the POST request > 961 | const response = await ctxt.request.fetch(request); | ^ 962 | if (!response.ok()) { 963 | if (!page.isClosed() && !isClosed) { 964 | return route.fulfill({ at /home/runner/work/jupyterlab/jupyterlab/galata/src/galata.ts:961:49
Visual Regression Tests
Process completed with exit code 1.
🎭 Playwright Run Summary
2 flaky [documentation] › test/documentation/debugger.test.ts:100:7 › Debugger › Stop on breakpoint ──── [documentation] › test/documentation/debugger.test.ts:126:7 › Debugger › Breakpoints on exception 61 passed (4.5m)
🎭 Playwright Run Summary
1 failed [jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:84:5 › should not update height when hiding 6 flaky [galata] › test/galata/fixture.spec.ts:38:7 › mockSettings › should not return mocked settings after save [jupyterlab] › test/jupyterlab/metadataform.test.ts:391:7 › Default metadata without "showModified" flag › should not display the modified field [jupyterlab] › test/jupyterlab/notebook-scroll-no-windowing.test.ts:181:7 › Notebook scroll on execution (no windowing) › should scroll when advancing if top is only marginally visible [jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:401:5 › should display cells below on scrolling after inserting a cell on top [jupyterlab] › test/jupyterlab/windowed-notebook.test.ts:523:5 › should rendered injected HTML scripts of out-of-viewport cells [jupyterlab] › test/jupyterlab/workspace.test.ts:317:7 › Workspace in doc mode › should restore workspace when switching back to lab mode 496 passed (33.6m)

Artifacts

Produced during runtime
Name Size
jupyterlab-documentation-report
968 KB
jupyterlab-documentation-test-assets
10.1 KB
jupyterlab-galata-report
8.19 MB
jupyterlab-galata-test-assets
4.2 MB