feat(response-example): support previewing pdf images and videos for 'save responses' #3513
tests-linux.yml
on: pull_request
Matrix: e2e-test
Unit Tests (Linux)
7m 23s
CLI Tests (Linux)
3m 24s
SSL Tests (Linux)
16m 4s
OAuth 1.0 Auth Tests (Linux)
14m 45s
Merge Playwright Reports (Linux)
1m 8s
Annotations
26 errors, 9 warnings, and 6 notices
|
[default] › tests/preferences/system-proxy-timestamp.spec.ts:34:7 › System Proxy - last refreshed timestamp › updates the timestamp on a subsequent Refresh:
tests/preferences/system-proxy-timestamp.spec.ts#L73
1) [default] › tests/preferences/system-proxy-timestamp.spec.ts:34:7 › System Proxy - last refreshed timestamp › updates the timestamp on a subsequent Refresh
Error: expect(received).toBeGreaterThan(expected)
Expected: > 1000
Received: 399
71 |
72 | // the two refreshes should be more than 1 second apart
> 73 | expect(secondRefreshedAt - firstRefreshedAt).toBeGreaterThan(1000);
| ^
74 | });
75 | });
76 |
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/preferences/system-proxy-timestamp.spec.ts:73:50
|
|
[default] › tests/richtext-editor/shortcut-passthrough.spec.ts:105:7 › Rich Text Editor - Keyboard Shortcut with Global Hotkeys (remapped) › a shortcut Tiptap does bind only runs the editor action:
tests/richtext-editor/shortcut-passthrough.spec.ts#L126
3) [default] › tests/richtext-editor/shortcut-passthrough.spec.ts:105:7 › Rich Text Editor - Keyboard Shortcut with Global Hotkeys (remapped) › a shortcut Tiptap does bind only runs the editor action, not a colliding global shortcut › Cmd/Ctrl+B only bolds the selection. it does not open Preferences
Error: expect(locator).toHaveText(expected) failed
Locator: locator('.ProseMirror').locator('strong')
Expected: "World"
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toHaveText" with timeout 5000ms
- waiting for locator('.ProseMirror').locator('strong')
124 | await test.step('Cmd/Ctrl+B only bolds the selection. it does not open Preferences', async () => {
125 | await pressShortcut(page, modifier, 'KeyB');
> 126 | await expect(prosemirror.locator('strong')).toHaveText('World');
| ^
127 | await expect(locators.tabs.requestTab('Preferences')).not.toBeVisible();
128 | });
129 | });
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/richtext-editor/shortcut-passthrough.spec.ts:126:51
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/richtext-editor/shortcut-passthrough.spec.ts:124:5
|
|
[default] › tests/richtext-editor/links.spec.ts:154:7 › Rich Text Editor Edge Cases - Links › Link popovers - scroll tracking:
tests/richtext-editor/links.spec.ts#L260
2) [default] › tests/richtext-editor/links.spec.ts:154:7 › Rich Text Editor Edge Cases - Links › Link popovers - scroll tracking, hiding, and flipping › Flipping (bottom of viewport)
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toHaveAttribute(expected) failed
Locator: locator('[data-editor-link-popover="true"]')
Expected pattern: /^top/
Received string: "bottom"
Timeout: 5000ms
Call log:
- Expect "toHaveAttribute" with timeout 5000ms
- waiting for locator('[data-editor-link-popover="true"]')
14 × locator resolved to <div data-popper-placement="bottom" data-editor-link-popover="true" class="StyledWrapper-eoHZkQ bykcxl">…</div>
- unexpected value "bottom"
258 | // the popover should flip and appear ABOVE the link.
259 | // Popper handles this automatically. We can verify if data-popper-placement starts with 'top'.
> 260 | await expect(editPopover).toHaveAttribute('data-popper-placement', /^top/);
| ^
261 | });
262 | });
263 |
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/richtext-editor/links.spec.ts:260:33
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/richtext-editor/links.spec.ts:232:5
|
|
[default] › tests/richtext-editor/links.spec.ts:154:7 › Rich Text Editor Edge Cases - Links › Link popovers - scroll tracking:
tests/richtext-editor/links.spec.ts#L260
2) [default] › tests/richtext-editor/links.spec.ts:154:7 › Rich Text Editor Edge Cases - Links › Link popovers - scroll tracking, hiding, and flipping › Flipping (bottom of viewport)
Error: expect(locator).toHaveAttribute(expected) failed
Locator: locator('[data-editor-link-popover="true"]')
Expected pattern: /^top/
Received string: "bottom"
Timeout: 5000ms
Call log:
- Expect "toHaveAttribute" with timeout 5000ms
- waiting for locator('[data-editor-link-popover="true"]')
14 × locator resolved to <div data-popper-placement="bottom" data-editor-link-popover="true" class="StyledWrapper-eoHZkQ bykcxl">…</div>
- unexpected value "bottom"
258 | // the popover should flip and appear ABOVE the link.
259 | // Popper handles this automatically. We can verify if data-popper-placement starts with 'top'.
> 260 | await expect(editPopover).toHaveAttribute('data-popper-placement', /^top/);
| ^
261 | });
262 | });
263 |
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/richtext-editor/links.spec.ts:260:33
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/richtext-editor/links.spec.ts:232:5
|
|
[default] › tests/request/multipart-form/multipart-form-file-chips.spec.ts:155:7 › Multipart Form - Multiple File Upload › each file can be removed individually:
tests/request/multipart-form/multipart-form-file-chips.spec.ts#L134
1) [default] › tests/request/multipart-form/multipart-form-file-chips.spec.ts:155:7 › Multipart Form - Multiple File Upload › each file can be removed individually
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByTestId('multipart-file-more')
132 | const more = page.getByTestId('multipart-file-more');
133 | const trigger = (await summary.count()) > 0 ? summary : more;
> 134 | await trigger.click();
| ^
135 |
136 | const row = page.getByTestId('multipart-file-overflow-row').filter({ hasText: fileName });
137 | await expect(row).toBeVisible();
at removeFileByName (/home/runner/work/usebruno-bruno/bruno/bruno/tests/request/multipart-form/multipart-form-file-chips.spec.ts:134:19)
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/request/multipart-form/multipart-form-file-chips.spec.ts:158:5
|
|
[default] › tests/request/multipart-form/multipart-form-file-chips.spec.ts:155:7 › Multipart Form - Multiple File Upload › each file can be removed individually:
tests/request/multipart-form/multipart-form-file-chips.spec.ts#L0
1) [default] › tests/request/multipart-form/multipart-form-file-chips.spec.ts:155:7 › Multipart Form - Multiple File Upload › each file can be removed individually
Test timeout of 30000ms exceeded.
|
|
[default] › tests/environments/collection-default-environment/collection-default-environment.spec.ts:47:7 › Collection Default Environment › resolves request variables from the default environment (verified in Timeline):
tests/utils/page/actions.ts#L110
6) [default] › tests/environments/collection-default-environment/collection-default-environment.spec.ts:47:7 › Collection Default Environment › resolves request variables from the default environment (verified in Timeline) › Open collection and confirm default applied › Open collection "collection-default-environment"
Error: locator.click: Target page, context or browser has been closed
Call log:
- waiting for locator('#sidebar-collection-name').filter({ hasText: 'collection-default-environment' })
at tests/utils/page/actions.ts:110
108 | const openCollection = async (page: Page, collectionName: string) => {
109 | await test.step(`Open collection "${collectionName}"`, async () => {
> 110 | await page.locator('#sidebar-collection-name').filter({ hasText: collectionName }).click();
| ^
111 | });
112 | };
113 |
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:110:88
at openCollection (/home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:109:3)
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/environments/collection-default-environment/collection-default-environment.spec.ts:53:7
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/environments/collection-default-environment/collection-default-environment.spec.ts:52:5
|
|
[default] › tests/environments/collection-default-environment/collection-default-environment.spec.ts:47:7 › Collection Default Environment › resolves request variables from the default environment (verified in Timeline):
tests/environments/collection-default-environment/collection-default-environment.spec.ts#L0
6) [default] › tests/environments/collection-default-environment/collection-default-environment.spec.ts:47:7 › Collection Default Environment › resolves request variables from the default environment (verified in Timeline) › Open collection and confirm default applied › Open collection "collection-default-environment"
Test timeout of 30000ms exceeded.
|
|
[default] › tests/cookies/corrupted-passkey.spec.ts:6:5 › should handle corrupted passkey and still display saved cookie list:
tests/cookies/corrupted-passkey.spec.ts#L45
5) [default] › tests/cookies/corrupted-passkey.spec.ts:6:5 › should handle corrupted passkey and still display saved cookie list
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeVisible() failed
Locator: getByText('example.com')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for getByText('example.com')
43 |
44 | // The domain row should still be visible (even if cookie values are blank).
> 45 | await expect(page2.getByText('example.com')).toBeVisible();
| ^
46 |
47 | await closeElectronApp(app2);
48 | });
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/cookies/corrupted-passkey.spec.ts:45:48
|
|
[default] › tests/cookies/corrupted-passkey.spec.ts:6:5 › should handle corrupted passkey and still display saved cookie list:
tests/cookies/corrupted-passkey.spec.ts#L45
5) [default] › tests/cookies/corrupted-passkey.spec.ts:6:5 › should handle corrupted passkey and still display saved cookie list
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeVisible() failed
Locator: getByText('example.com')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for getByText('example.com')
43 |
44 | // The domain row should still be visible (even if cookie values are blank).
> 45 | await expect(page2.getByText('example.com')).toBeVisible();
| ^
46 |
47 | await closeElectronApp(app2);
48 | });
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/cookies/corrupted-passkey.spec.ts:45:48
|
|
[default] › tests/cookies/corrupted-passkey.spec.ts:6:5 › should handle corrupted passkey and still display saved cookie list:
tests/cookies/corrupted-passkey.spec.ts#L45
5) [default] › tests/cookies/corrupted-passkey.spec.ts:6:5 › should handle corrupted passkey and still display saved cookie list
Error: expect(locator).toBeVisible() failed
Locator: getByText('example.com')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for getByText('example.com')
43 |
44 | // The domain row should still be visible (even if cookie values are blank).
> 45 | await expect(page2.getByText('example.com')).toBeVisible();
| ^
46 |
47 | await closeElectronApp(app2);
48 | });
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/cookies/corrupted-passkey.spec.ts:45:48
|
|
[default] › tests/collection/migrate-to-yml-drafts/transient-blocks-save-all.spec.ts:25:7 › Migrate to YML — a transient request blocks Save All until it is saved › save the transient via its per-item Save button:
tests/collection/migrate-to-yml-drafts/transient-blocks-save-all.spec.ts#L71
4) [default] › tests/collection/migrate-to-yml-drafts/transient-blocks-save-all.spec.ts:25:7 › Migrate to YML — a transient request blocks Save All until it is saved › save the transient via its per-item Save button, then Save All completes migration › Save All completes migration
Error: expect(locator).toBeVisible() failed
Locator: getByText('Collection migrated to YML format successfully')
Expected: visible
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 30000ms
- waiting for getByText('Collection migrated to YML format successfully')
- Target page, context or browser has been closed
69 | await test.step('Save All completes migration', async () => {
70 | await saveAllDraftsAndMigrate(page);
> 71 | await expect(page.getByText('Collection migrated to YML format successfully')).toBeVisible({ timeout: 30000 });
| ^
72 | });
73 |
74 | await test.step('The saved request survives as a .yml on disk', async () => {
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/collection/migrate-to-yml-drafts/transient-blocks-save-all.spec.ts:71:86
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/collection/migrate-to-yml-drafts/transient-blocks-save-all.spec.ts:69:5
|
|
[default] › tests/collection/migrate-to-yml-drafts/transient-blocks-save-all.spec.ts:25:7 › Migrate to YML — a transient request blocks Save All until it is saved › save the transient via its per-item Save button:
tests/collection/migrate-to-yml-drafts/transient-blocks-save-all.spec.ts#L0
4) [default] › tests/collection/migrate-to-yml-drafts/transient-blocks-save-all.spec.ts:25:7 › Migrate to YML — a transient request blocks Save All until it is saved › save the transient via its per-item Save button, then Save All completes migration › Save All completes migration
Test timeout of 30000ms exceeded.
|
|
[default] › tests/apps/collection-apps.spec.ts:201:7 › Collection apps › bru.ctx.collection exposes the active collection:
tests/utils/page/actions.ts#L1801
3) [default] › tests/apps/collection-apps.spec.ts:201:7 › Collection apps › bru.ctx.collection exposes the active collection › Save request
Error: expect(locator).toBeVisible() failed
Locator: getByText('Request saved successfully').last()
Expected: visible
Timeout: 3000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 3000ms
- waiting for getByText('Request saved successfully').last()
at tests/utils/page/actions.ts:1801
1799 | const saveShortcut = process.platform === 'darwin' ? 'Meta+s' : 'Control+s';
1800 | await page.keyboard.press(saveShortcut);
> 1801 | await expect(page.getByText('Request saved successfully').last()).toBeVisible({ timeout: 3000 });
| ^
1802 | await page.waitForTimeout(200);
1803 | });
1804 | };
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:1801:71
at saveRequest (/home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:1798:3)
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/apps/collection-apps.spec.ts:207:5
|
|
[default] › tests/apps/apps-ctx-api.spec.ts:180:7 › Apps - ctx API › bru.ctx.variables.runtime.set persists for subsequent sends:
tests/apps/apps-ctx-api.spec.ts#L198
2) [default] › tests/apps/apps-ctx-api.spec.ts:180:7 › Apps - ctx API › bru.ctx.variables.runtime.set persists for subsequent sends
Error: expect(received).toBe(expected) // Object.is equality
Expected: "viaSet"
Received: undefined
Call Log:
- Timeout 15000ms exceeded while waiting on the predicate
196 | await expect
197 | .poll(() => guestEval(electronApp, `window.bru && window.bru.ctx.variables.resolved && window.bru.ctx.variables.resolved.q`), { timeout: 15000 })
> 198 | .toBe('viaSet');
| ^
199 | await guestEval(electronApp, 'void window.__send()');
200 | await expect.poll(() => guestResult(electronApp), { timeout: 15000 }).toBe('viaSet');
201 | });
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/apps/apps-ctx-api.spec.ts:198:8
|
|
[default] › tests/apps/apps-ctx-api.spec.ts:157:7 › Apps - ctx API › bru.ctx.submitRequest sends the request and resolves with the response:
tests/apps/apps-ctx-api.spec.ts#L171
1) [default] › tests/apps/apps-ctx-api.spec.ts:157:7 › Apps - ctx API › bru.ctx.submitRequest sends the request and resolves with the response › runtimeVariables override the request body
Error: expect(received).toBe(expected) // Object.is equality
Expected: "reflectme"
Received: "pending"
Call Log:
- Timeout 15000ms exceeded while waiting on the predicate
169 | await test.step('runtimeVariables override the request body', async () => {
170 | await guestEval(electronApp, `void window.__send({ runtimeVariables: { q: 'reflectme' } })`);
> 171 | await expect.poll(() => guestResult(electronApp), { timeout: 15000 }).toBe('reflectme');
| ^
172 | });
173 |
174 | await test.step('a subsequent runtimeVariables override is honoured', async () => {
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/apps/apps-ctx-api.spec.ts:171:77
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/apps/apps-ctx-api.spec.ts:169:5
|
|
[default] › tests/websockets/multi-message-bru/message-name-style.spec.ts:20:7 › websocket message name styling › long message name truncates instead of overflowing:
tests/utils/page/actions.ts#L1122
5) [default] › tests/websockets/multi-message-bru/message-name-style.spec.ts:20:7 › websocket message name styling › long message name truncates instead of overflowing › Navigate to collection "ws-multi-message" and open request "ws-single-msg"
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByTestId('sidebar-collection-row').filter({ hasText: 'ws-multi-message' })
at tests/utils/page/actions.ts:1122
1120 | await test.step(`Navigate to collection "${collectionName}" and open request "${requestName}"`, async () => {
1121 | const collectionContainer = page.getByTestId('sidebar-collection-row').filter({ hasText: collectionName });
> 1122 | await collectionContainer.click();
| ^
1123 | const collectionWrapper = collectionContainer.locator('..');
1124 | const request = collectionWrapper.getByTestId('sidebar-collection-item-row').filter({ hasText: requestName });
1125 | if (!persist) {
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:1122:31
at openRequest (/home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:1120:3)
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/websockets/multi-message-bru/message-name-style.spec.ts:22:5
|
|
[default] › tests/websockets/multi-message-bru/message-name-style.spec.ts:20:7 › websocket message name styling › long message name truncates instead of overflowing:
tests/websockets/multi-message-bru/message-name-style.spec.ts#L0
5) [default] › tests/websockets/multi-message-bru/message-name-style.spec.ts:20:7 › websocket message name styling › long message name truncates instead of overflowing › Navigate to collection "ws-multi-message" and open request "ws-single-msg"
Test timeout of 30000ms exceeded.
|
|
[default] › tests/websockets/message-scroll.spec.ts:84:7 › websocket message list scroll on tab switch › restores both list and editor scroll at the bottom after switching tabs:
tests/utils/page/actions.ts#L1122
4) [default] › tests/websockets/message-scroll.spec.ts:84:7 › websocket message list scroll on tab switch › restores both list and editor scroll at the bottom after switching tabs › Navigate to collection "collection" and open request "ws-two-long-msgs"
Error: locator.click: Target page, context or browser has been closed
Call log:
- waiting for getByTestId('sidebar-collection-row').filter({ hasText: 'collection' })
at tests/utils/page/actions.ts:1122
1120 | await test.step(`Navigate to collection "${collectionName}" and open request "${requestName}"`, async () => {
1121 | const collectionContainer = page.getByTestId('sidebar-collection-row').filter({ hasText: collectionName });
> 1122 | await collectionContainer.click();
| ^
1123 | const collectionWrapper = collectionContainer.locator('..');
1124 | const request = collectionWrapper.getByTestId('sidebar-collection-item-row').filter({ hasText: requestName });
1125 | if (!persist) {
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:1122:31
at openRequest (/home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:1120:3)
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/websockets/message-scroll.spec.ts:86:5
|
|
[default] › tests/websockets/message-scroll.spec.ts:84:7 › websocket message list scroll on tab switch › restores both list and editor scroll at the bottom after switching tabs:
tests/websockets/message-scroll.spec.ts#L0
4) [default] › tests/websockets/message-scroll.spec.ts:84:7 › websocket message list scroll on tab switch › restores both list and editor scroll at the bottom after switching tabs › Navigate to collection "collection" and open request "ws-two-long-msgs"
Test timeout of 30000ms exceeded.
|
|
[default] › tests/websockets/message-editor-scroll.spec.ts:112:7 › websocket message editor scroll behaviour › clicking a reopened message body does not move the scroll position:
tests/utils/page/actions.ts#L1122
3) [default] › tests/websockets/message-editor-scroll.spec.ts:112:7 › websocket message editor scroll behaviour › clicking a reopened message body does not move the scroll position › Navigate to collection "collection" and open request "ws-two-long-msgs"
Error: locator.click: Target page, context or browser has been closed
Call log:
- waiting for getByTestId('sidebar-collection-row').filter({ hasText: 'collection' })
at tests/utils/page/actions.ts:1122
1120 | await test.step(`Navigate to collection "${collectionName}" and open request "${requestName}"`, async () => {
1121 | const collectionContainer = page.getByTestId('sidebar-collection-row').filter({ hasText: collectionName });
> 1122 | await collectionContainer.click();
| ^
1123 | const collectionWrapper = collectionContainer.locator('..');
1124 | const request = collectionWrapper.getByTestId('sidebar-collection-item-row').filter({ hasText: requestName });
1125 | if (!persist) {
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:1122:31
at openRequest (/home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:1120:3)
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/websockets/message-editor-scroll.spec.ts:117:5
|
|
[default] › tests/websockets/message-editor-scroll.spec.ts:112:7 › websocket message editor scroll behaviour › clicking a reopened message body does not move the scroll position:
tests/websockets/message-editor-scroll.spec.ts#L0
3) [default] › tests/websockets/message-editor-scroll.spec.ts:112:7 › websocket message editor scroll behaviour › clicking a reopened message body does not move the scroll position › Navigate to collection "collection" and open request "ws-two-long-msgs"
Test timeout of 30000ms exceeded.
|
|
[default] › tests/websockets/message-editor-scroll.spec.ts:81:7 › websocket message editor scroll behaviour › selecting another message does not reset the deselected editor scroll to top:
tests/utils/page/actions.ts#L1122
2) [default] › tests/websockets/message-editor-scroll.spec.ts:81:7 › websocket message editor scroll behaviour › selecting another message does not reset the deselected editor scroll to top › Navigate to collection "collection" and open request "ws-two-long-msgs"
Error: locator.click: Target page, context or browser has been closed
Call log:
- waiting for getByTestId('sidebar-collection-row').filter({ hasText: 'collection' })
at tests/utils/page/actions.ts:1122
1120 | await test.step(`Navigate to collection "${collectionName}" and open request "${requestName}"`, async () => {
1121 | const collectionContainer = page.getByTestId('sidebar-collection-row').filter({ hasText: collectionName });
> 1122 | await collectionContainer.click();
| ^
1123 | const collectionWrapper = collectionContainer.locator('..');
1124 | const request = collectionWrapper.getByTestId('sidebar-collection-item-row').filter({ hasText: requestName });
1125 | if (!persist) {
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:1122:31
at openRequest (/home/runner/work/usebruno-bruno/bruno/bruno/tests/utils/page/actions.ts:1120:3)
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/websockets/message-editor-scroll.spec.ts:87:5
|
|
[default] › tests/websockets/message-editor-scroll.spec.ts:81:7 › websocket message editor scroll behaviour › selecting another message does not reset the deselected editor scroll to top:
tests/websockets/message-editor-scroll.spec.ts#L0
2) [default] › tests/websockets/message-editor-scroll.spec.ts:81:7 › websocket message editor scroll behaviour › selecting another message does not reset the deselected editor scroll to top › Navigate to collection "collection" and open request "ws-two-long-msgs"
Test timeout of 30000ms exceeded.
|
|
[default] › tests/variables-tab/variables-tab.spec.ts:453:7 › Variables tab › restores the scroll position after leaving and reopening the tab:
tests/variables-tab/variables-tab.spec.ts#L473
1) [default] › tests/variables-tab/variables-tab.spec.ts:453:7 › Variables tab › restores the scroll position after leaving and reopening the tab
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(received).toBe(expected) // Object.is equality
Expected: 300
Received: 0
Call Log:
- Timeout 5000ms exceeded while waiting on the predicate
471 | await reopenVariablesTab(page, 'seed');
472 |
> 473 | await expect.poll(() => getVariablesScrollTop(page)).toBe(SCROLL_TOP);
| ^
474 | });
475 |
476 | test('restores a long object value\'s own scroll position inside its cell', async ({ pageWithUserData: page }) => {
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/variables-tab/variables-tab.spec.ts:473:58
|
|
[default] › tests/variables-tab/variables-tab.spec.ts:453:7 › Variables tab › restores the scroll position after leaving and reopening the tab:
tests/variables-tab/variables-tab.spec.ts#L473
1) [default] › tests/variables-tab/variables-tab.spec.ts:453:7 › Variables tab › restores the scroll position after leaving and reopening the tab
Error: expect(received).toBe(expected) // Object.is equality
Expected: 300
Received: 0
Call Log:
- Timeout 5000ms exceeded while waiting on the predicate
471 | await reopenVariablesTab(page, 'seed');
472 |
> 473 | await expect.poll(() => getVariablesScrollTop(page)).toBe(SCROLL_TOP);
| ^
474 | });
475 |
476 | test('restores a long object value\'s own scroll position inside its cell', async ({ pageWithUserData: page }) => {
at /home/runner/work/usebruno-bruno/bruno/bruno/tests/variables-tab/variables-tab.spec.ts:473:58
|
|
CLI Tests (Linux)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit Tests (Linux)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
OAuth 1.0 Auth Tests (Linux)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
SSL Tests (Linux)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Playwright E2E Tests (Linux) 2/4
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Playwright E2E Tests (Linux) 3/4
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Playwright E2E Tests (Linux) 1/4
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Playwright E2E Tests (Linux) 4/4
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Merge Playwright Reports (Linux)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/download-artifact@v6, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
🎭 Playwright Run Summary
34 passed (4.5m)
|
|
🎭 Playwright Run Summary
57 passed (5.3m)
|
|
🎭 Playwright Run Summary
1 flaky
[default] › tests/preferences/system-proxy-timestamp.spec.ts:34:7 › System Proxy - last refreshed timestamp › updates the timestamp on a subsequent Refresh
2 skipped
310 passed (14.7m)
|
|
🎭 Playwright Run Summary
3 flaky
[default] › tests/request/multipart-form/multipart-form-file-chips.spec.ts:155:7 › Multipart Form - Multiple File Upload › each file can be removed individually
[default] › tests/richtext-editor/links.spec.ts:154:7 › Rich Text Editor Edge Cases - Links › Link popovers - scroll tracking, hiding, and flipping
[default] › tests/richtext-editor/shortcut-passthrough.spec.ts:105:7 › Rich Text Editor - Keyboard Shortcut with Global Hotkeys (remapped) › a shortcut Tiptap does bind only runs the editor action, not a colliding global shortcut
2 skipped
308 passed (21.0m)
|
|
🎭 Playwright Run Summary
1 failed
[default] › tests/cookies/corrupted-passkey.spec.ts:6:5 › should handle corrupted passkey and still display saved cookie list
8 flaky
[default] › tests/apps/apps-ctx-api.spec.ts:157:7 › Apps - ctx API › bru.ctx.submitRequest sends the request and resolves with the response
[default] › tests/apps/apps-ctx-api.spec.ts:180:7 › Apps - ctx API › bru.ctx.variables.runtime.set persists for subsequent sends
[default] › tests/apps/collection-apps.spec.ts:201:7 › Collection apps › bru.ctx.collection exposes the active collection
[default] › tests/collection/migrate-to-yml-drafts/transient-blocks-save-all.spec.ts:25:7 › Migrate to YML — a transient request blocks Save All until it is saved › save the transient via its per-item Save button, then Save All completes migration
[default] › tests/environments/collection-default-environment/collection-default-environment.spec.ts:47:7 › Collection Default Environment › resolves request variables from the default environment (verified in Timeline)
[default] › tests/environments/create-environment/global-env-create.spec.ts:23:7 › Global Environment Create Tests › should import collection and create global environment for request usage
[default] › tests/environments/environment-tabs/environment-tabs.spec.ts:184:7 › Environment Variables / Secrets tab separation › the unsaved indicator appears only on the tab with unsaved edits
[default] › tests/environments/environment-tabs/environment-tabs.spec.ts:698:7 › Global Environment Variables / Secrets tab separation › the unsaved indicator appears only on the tab with unsaved edits
5 skipped
300 passed (23.9m)
|
|
🎭 Playwright Run Summary
5 flaky
[default] › tests/variables-tab/variables-tab.spec.ts:453:7 › Variables tab › restores the scroll position after leaving and reopening the tab
[default] › tests/websockets/message-editor-scroll.spec.ts:81:7 › websocket message editor scroll behaviour › selecting another message does not reset the deselected editor scroll to top
[default] › tests/websockets/message-editor-scroll.spec.ts:112:7 › websocket message editor scroll behaviour › clicking a reopened message body does not move the scroll position
[default] › tests/websockets/message-scroll.spec.ts:84:7 › websocket message list scroll on tab switch › restores both list and editor scroll at the bottom after switching tabs
[default] › tests/websockets/multi-message-bru/message-name-style.spec.ts:20:7 › websocket message name styling › long message name truncates instead of overflowing
308 passed (28.4m)
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
blob-report-linux-1
Expired
|
60.4 MB |
sha256:b25abf0644214c047985775881e5c4774e715ca6f5779c1e12f64e4f935c306c
|
|
|
blob-report-linux-2
Expired
|
1.76 MB |
sha256:2088df455a606c27c146e01c294bf14bf667663787033f13257907d5c96f216d
|
|
|
blob-report-linux-3
Expired
|
18.4 MB |
sha256:53fe848c229b13367286fb80aaaf13e24d0b225a10cb458398c8b7217c3db0cb
|
|
|
blob-report-linux-4
Expired
|
15 MB |
sha256:56263282646ab74aee4a246d7a96c782e1585e84b65883a4a6700d8b76905161
|
|
|
playwright-report-auth-linux
|
661 KB |
sha256:d61e7ac861b7f0c8f906686575aa2b48d8074eebf3d26187f5d13275c1089ad1
|
|
|
playwright-report-linux
|
93.8 MB |
sha256:89cabb6b52c51c4ae09d4cefb436c664b237ad4a019b2c366817caacddb853d7
|
|
|
playwright-report-linux-ssl
|
622 KB |
sha256:523f14c6b4a591b6f96d99c996528b2cec48a554e6747e0694a58931d1e148b0
|
|