From 0ffd38564fe302bd8eae99f01e9ae29e4a69c283 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 9 May 2026 01:33:47 +0100 Subject: [PATCH] test: tighten cli runner process cleanup assertion --- src/agents/cli-runner.bundle-mcp.e2e.test.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/agents/cli-runner.bundle-mcp.e2e.test.ts b/src/agents/cli-runner.bundle-mcp.e2e.test.ts index cc07177a50a..d80c2227b0c 100644 --- a/src/agents/cli-runner.bundle-mcp.e2e.test.ts +++ b/src/agents/cli-runner.bundle-mcp.e2e.test.ts @@ -29,6 +29,18 @@ vi.mock("./cli-runner/helpers.js", async () => { // also reaches this test after several gateway/plugin restart exercises. const E2E_TIMEOUT_MS = 90_000; +function isProcessAlive(pid: number): boolean { + try { + process.kill(pid, 0); + return true; + } catch (error) { + if ((error as NodeJS.ErrnoException).code === "ESRCH") { + return false; + } + throw error; + } +} + function installTestClaudeBackend(params: { commandPath: string; liveSession?: "claude-stdio" }) { cliBackendsTesting.setDepsForTest({ resolveRuntimeCliBackends: () => [], @@ -209,7 +221,7 @@ describe("runCliAgent bundle MCP e2e", () => { expect(getActiveMcpLoopbackRuntime()).toBeUndefined(); const fakeClaudePid = Number.parseInt(await fs.readFile(fakeClaudePidPath, "utf-8"), 10); expect(Number.isFinite(fakeClaudePid)).toBe(true); - expect(() => process.kill(fakeClaudePid, 0)).toThrow(); + expect(isProcessAlive(fakeClaudePid)).toBe(false); } finally { await closeMcpLoopbackServer(); resetGlobalHookRunner();