docs: project governance (#8790) #2468
tests-macos.yml
on: push
Unit Tests (macOS)
6m 39s
CLI Tests (macOS)
5m 15s
Playwright E2E Tests (macOS)
1h 31m
SSL Tests (macOS)
11m 39s
OAuth 1.0 Auth Tests (macOS)
12m 33s
Annotations
10 errors, 5 warnings, and 3 notices
|
[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:
tests/environments/environment-tabs/environment-tabs.spec.ts#L210
8) [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 › Editing the Secrets tab marks it unsaved without clearing Variables
Error: expect(locator).toHaveClass(expected) failed
Locator: getByTestId('responsive-tab-variables').getByTestId('env-tab-count')
Expected pattern: /unsaved/
Received string: "env-tab-count font-medium"
Timeout: 5000ms
Call log:
- Expect "toHaveClass" with timeout 5000ms
- waiting for getByTestId('responsive-tab-variables').getByTestId('env-tab-count')
14 × locator resolved to <sup data-testid="env-tab-count" class="env-tab-count font-medium">1</sup>
- unexpected value "env-tab-count font-medium"
208 | // The Variables tab still has its unsaved row, so its marker must remain.
209 | await expect(tabCount(page, 'variables')).toHaveText('1');
> 210 | await expect(tabCount(page, 'variables')).toHaveClass(/unsaved/);
| ^
211 | });
212 |
213 | await test.step('Saving the Secrets tab clears only its unsaved marker', async () => {
at /Users/admin/action-runner/_work/bruno/bruno/tests/environments/environment-tabs/environment-tabs.spec.ts:210:49
at /Users/admin/action-runner/_work/bruno/bruno/tests/environments/environment-tabs/environment-tabs.spec.ts:203:5
|
|
[default] › tests/environments/create-environment/collection-env-create.spec.ts:15:7 › Collection Environment Create Tests › should import collection and create environment for request usage:
tests/utils/page/actions.ts#L1020
7) [default] › tests/environments/create-environment/collection-env-create.spec.ts:15:7 › Collection Environment Create Tests › should import collection and create environment for request usage › Create environment with variables › Add 5 environment variables › Add environment variable "postTitle" › Add row "postTitle" to the active environment tab
Error: locator.waitFor: Target page, context or browser has been closed
Call log:
- waiting for locator('input[placeholder="Name"]').last() to be visible
at tests/utils/page/actions.ts:1020
1018 | await test.step(`Add row "${name}" to the active environment tab`, async () => {
1019 | const nameInput = page.locator('input[placeholder="Name"]').last();
> 1020 | await nameInput.waitFor({ state: 'visible' });
| ^
1021 | await nameInput.fill(name);
1022 |
1023 | const row = page.getByTestId(`env-var-row-${name}`);
at /Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:1020:21
at addRowToActiveTab (/Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:1018:3)
at /Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:983:5
at addEnvironmentVariable (/Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:976:3)
at /Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:997:7
at addEnvironmentVariables (/Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:995:3)
at /Users/admin/action-runner/_work/bruno/bruno/tests/environments/create-environment/collection-env-create.spec.ts:31:7
at /Users/admin/action-runner/_work/bruno/bruno/tests/environments/create-environment/collection-env-create.spec.ts:28:5
|
|
[default] › tests/environments/create-environment/collection-env-create.spec.ts:15:7 › Collection Environment Create Tests › should import collection and create environment for request usage:
tests/environments/create-environment/collection-env-create.spec.ts#L0
7) [default] › tests/environments/create-environment/collection-env-create.spec.ts:15:7 › Collection Environment Create Tests › should import collection and create environment for request usage › Create environment with variables › Add 5 environment variables › Add environment variable "postTitle" › Add row "postTitle" to the active environment tab
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#L126
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:126
124 | const openCollection = async (page: Page, collectionName: string) => {
125 | await test.step(`Open collection "${collectionName}"`, async () => {
> 126 | await page.locator('#sidebar-collection-name').filter({ hasText: collectionName }).click();
| ^
127 | });
128 | };
129 |
at /Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:126:88
at openCollection (/Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:125:3)
at /Users/admin/action-runner/_work/bruno/bruno/tests/environments/collection-default-environment/collection-default-environment.spec.ts:53:7
at /Users/admin/action-runner/_work/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/collection/generate-docs/generate-docs.spec.ts:126:7 › Generate Documentation › orders generated docs to match the sidebar tree (folders by seq:
tests/collection/generate-docs/generate-docs.spec.ts#L0
5) [default] › tests/collection/generate-docs/generate-docs.spec.ts:126:7 › Generate Documentation › orders generated docs to match the sidebar tree (folders by seq, then requests by seq, recursively)
Test timeout of 30000ms exceeded while setting up "pageWithUserData".
|
|
[default] › tests/apps/collection-apps.spec.ts:205:7 › Collection apps › bru.ctx.collection exposes the active collection:
tests/utils/page/actions.ts#L1909
4) [default] › tests/apps/collection-apps.spec.ts:205: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:1909
1907 | const saveShortcut = process.platform === 'darwin' ? 'Meta+s' : 'Control+s';
1908 | await page.keyboard.press(saveShortcut);
> 1909 | await expect(page.getByText('Request saved successfully').last()).toBeVisible({ timeout: 3000 });
| ^
1910 | await page.waitForTimeout(200);
1911 | });
1912 | };
at /Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:1909:71
at saveRequest (/Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:1906:3)
at /Users/admin/action-runner/_work/bruno/bruno/tests/apps/collection-apps.spec.ts:211:5
|
|
[default] › tests/apps/collection-apps.spec.ts:188:7 › Collection apps › bru.ctx.variables.runtime.set persists into bru.ctx.variables.resolved:
tests/utils/page/actions.ts#L1909
3) [default] › tests/apps/collection-apps.spec.ts:188:7 › Collection apps › bru.ctx.variables.runtime.set persists into bru.ctx.variables.resolved › 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:1909
1907 | const saveShortcut = process.platform === 'darwin' ? 'Meta+s' : 'Control+s';
1908 | await page.keyboard.press(saveShortcut);
> 1909 | await expect(page.getByText('Request saved successfully').last()).toBeVisible({ timeout: 3000 });
| ^
1910 | await page.waitForTimeout(200);
1911 | });
1912 | };
at /Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:1909:71
at saveRequest (/Users/admin/action-runner/_work/bruno/bruno/tests/utils/page/actions.ts:1906:3)
at /Users/admin/action-runner/_work/bruno/bruno/tests/apps/collection-apps.spec.ts:194: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 /Users/admin/action-runner/_work/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 /Users/admin/action-runner/_work/bruno/bruno/tests/apps/apps-ctx-api.spec.ts:171:77
at /Users/admin/action-runner/_work/bruno/bruno/tests/apps/apps-ctx-api.spec.ts:169:5
|
|
CLI Tests (macOS)
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 (macOS)
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/
|
|
SSL Tests (macOS)
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/
|
|
OAuth 1.0 Auth Tests (macOS)
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 (macOS)
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 Run Summary
57 passed (8.4m)
|
|
🎭 Playwright Run Summary
49 passed (10.2m)
|
|
🎭 Playwright Run Summary
7 failed
[default] › tests/import/postman/import-binary-body-mode.spec.ts:16:7 › Import Postman Collection with binary body mode › should import a Postman binary body and preserve the file path
[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
[default] › tests/shortcuts/sidebar-actions.spec.ts:315:13 › Shortcut Keys - BOUND_ACTIONS › SIDEBAR › SHORTCUT: Copy Paste Item › SHORTCUT: Copy Paste Item for folder (Cmd/Ctrl+C/V) › default Cmd/Ctrl+C/V copy paste item for folder
[default] › tests/variable-tooltip/variable-tooltip.spec.ts:37:7 › Variable Tooltip › should test tooltip functionality with environment variables
[default] › tests/websockets/message-scroll.spec.ts:85:7 › websocket message list scroll on tab switch › restores both list and editor scroll at the bottom after switching tabs
[default] › tests/websockets/ws-header.spec.ts:61:7 › websocket sticky header dropdown overlap › open dropdown stays on top when a lower message header is hovered
27 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:188:7 › Collection apps › bru.ctx.variables.runtime.set persists into bru.ctx.variables.resolved
[default] › tests/apps/collection-apps.spec.ts:205:7 › Collection apps › bru.ctx.collection exposes the active collection
[default] › tests/collection/generate-docs/generate-docs.spec.ts:126:7 › Generate Documentation › orders generated docs to match the sidebar tree (folders by seq, then requests by seq, recursively)
[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/collection-env-create.spec.ts:15:7 › Collection Environment Create Tests › should import collection and create 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/export/postman/export-preserve-scripts.spec.ts:50:7 › Export Postman Collection - Preserve scripts option › should overwrite an existing file when Replace is confirmed
[default] › tests/grpc/method-search/grpc-method-search.spec.ts:49:7 › Grpc Collection - Method Search Functionality › Search for grpc methods using the keyboard
[default] › tests/protobuf/manage-protofile.spec.ts:78:7 › manage protofile › order.proto loads methods successfully when selected
[default] › tests/protobuf/manage-protofile.spec.ts:138:7 › manage protofile › product.proto successfully loads methods once import path is provided
[default] › tests/request/body-scroll/scroll-persistent.spec.ts:1078:9 › Scroll Position Persistence › Collection Settings › Collection Script - pre-request and post-response scroll persists
[default] › tests/request/multipart-form/multipart-form-file-chips.spec.ts:148:7 › Multipart Form - Multiple File Upload › uploading multiple files registers one entry per file
[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/request/timeline/time
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
playwright-report-auth-macos
|
440 KB |
sha256:b73c620bd1a2bcc3da7f3c6298f0fd3b85ea5fd684359954d0d848f0ca78dc30
|
|
|
playwright-report-macos
|
232 MB |
sha256:cd67b95e385fe9dac9bbd6b0305be1bbda96e3bad84cab370e8ad1bb520c0b58
|
|
|
playwright-report-macos-ssl
|
349 KB |
sha256:8dd0d58be035b6291e9a27650f12a2f29d6214c345da3ea867ed3813224f4508
|
|