Skip to content

docs: project governance (#8790) #2468

docs: project governance (#8790)

docs: project governance (#8790) #2468

Triggered via push September 6, 2026 23:32
Status Failure
Total duration 1h 34m 3s
Artifacts 3

tests-macos.yml

on: push
Unit Tests (macOS)
6m 39s
Unit Tests (macOS)
CLI Tests (macOS)
5m 15s
CLI Tests (macOS)
Playwright E2E Tests (macOS)
1h 31m
Playwright E2E Tests (macOS)
SSL Tests (macOS)
11m 39s
SSL Tests (macOS)
OAuth 1.0 Auth Tests (macOS)
12m 33s
OAuth 1.0 Auth Tests (macOS)
Fit to window
Zoom out
Zoom in

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