From be4cb8c7a9c28876de87dd6838f85605b3f08cba Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Mon, 14 Sep 2026 20:33:00 -0700 Subject: [PATCH] test(browser): make a CI-only capture failure diagnosable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This probe passes locally and fails on CI with an empty receipt set, an empty CDP diagnostic list, and a fixture that still exits 0 — so the assertion message carried nothing usable. Thread the fixture's own result and stderr into the capture assertion so the next run says what the fixture actually did. --- ...ua-wire-identity-cross-context.electron.test.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/browser/browser-session-ua-wire-identity-cross-context.electron.test.ts b/src/main/browser/browser-session-ua-wire-identity-cross-context.electron.test.ts index 44f02722544..c1044333b9f 100644 --- a/src/main/browser/browser-session-ua-wire-identity-cross-context.electron.test.ts +++ b/src/main/browser/browser-session-ua-wire-identity-cross-context.electron.test.ts @@ -40,6 +40,9 @@ type ProbeResult = Readonly<{ identities: readonly WireProbeJavaScriptIdentity[] cdpRequests: readonly BrowserSessionUaCdpRequest[] cdpDiagnostics: readonly string[] + /** Why carried: a CI-only capture failure is undiagnosable without the fixture's own output. */ + fixtureResult: string + fixtureStderr: string }> describe('browser session wire identity in cross-site frames and dedicated workers', () => { @@ -113,10 +116,17 @@ async function runProbe(arm: ProbeArm): Promise { // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: JSON.parse is untyped; the fixture writes this exact shape before exiting. const parsed = JSON.parse(fixtureResult) as Omit< ProbeResult, - 'receipts' | 'identities' | 'cdpRequests' | 'cdpDiagnostics' + | 'receipts' + | 'identities' + | 'cdpRequests' + | 'cdpDiagnostics' + | 'fixtureResult' + | 'fixtureStderr' > return { ...parsed, + fixtureResult, + fixtureStderr: processResult.stderr, receipts: [...server.receipts], identities: [...server.identities], cdpDiagnostics: [...collector.diagnostics], @@ -249,7 +259,7 @@ function assertCapturedContexts(result: ProbeResult): void { ]) { expect( paths, - `${result.arm} omitted ${path}: ${JSON.stringify(result.cdpDiagnostics)}` + `${result.arm} omitted ${path}\n cdp: ${JSON.stringify(result.cdpDiagnostics)}\n receipts: ${JSON.stringify(result.receipts.map((r) => r.path))}\n fixture: ${result.fixtureResult}\n stderr: ${result.fixtureStderr}` ).toContain(path) } expect(