diff --git a/packages/cli/package.json b/packages/cli/package.json index d2126987..667ef610 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/spawn", - "version": "0.25.19", + "version": "0.25.20", "type": "module", "bin": { "spawn": "cli.js" diff --git a/packages/cli/src/__tests__/test-helpers.ts b/packages/cli/src/__tests__/test-helpers.ts index 306f2c52..a16dce3d 100644 --- a/packages/cli/src/__tests__/test-helpers.ts +++ b/packages/cli/src/__tests__/test-helpers.ts @@ -183,7 +183,7 @@ export function mockClackPrompts(overrides?: Partial): ClackPr * and sprite-cov test files. Centralised here to avoid repetition. */ export function mockBunSpawn(exitCode = 0, stdout = "", stderr = "") { - function createMockProc() { + function createMockProc(): ReturnType { return { pid: 1234, exitCode: Promise.resolve(exitCode), @@ -201,9 +201,11 @@ export function mockBunSpawn(exitCode = 0, stdout = "", stderr = "") { }, }), kill: mock(() => {}), + killed: false, ref: () => {}, unref: () => {}, stdin: new WritableStream(), + signalCode: null, resourceUsage: () => ({ cpuTime: { @@ -229,8 +231,7 @@ export function mockBunSpawn(exitCode = 0, stdout = "", stderr = "") { }; } // Return a fresh mock proc per call so ReadableStreams are not reused - // biome-ignore lint: test mock - return spyOn(Bun, "spawn").mockImplementation(() => createMockProc() as ReturnType); + return spyOn(Bun, "spawn").mockImplementation(() => createMockProc()); } // ── Fetch Mocks ──────────────────────────────────────────────────────────────── diff --git a/packages/cli/src/__tests__/ui-cov.test.ts b/packages/cli/src/__tests__/ui-cov.test.ts index 9b4e97bc..2ddf7dfa 100644 --- a/packages/cli/src/__tests__/ui-cov.test.ts +++ b/packages/cli/src/__tests__/ui-cov.test.ts @@ -159,26 +159,30 @@ describe("selectFromList", () => { describe("openBrowser", () => { it("shows URL in stderr output on linux", () => { - // biome-ignore lint: test mock — spawnSync return type needs assertion const spawnSyncSpy = spyOn(Bun, "spawnSync").mockReturnValue({ exitCode: 1, stdout: Buffer.from(""), stderr: Buffer.from(""), success: false, - } satisfies Partial> as ReturnType); + signalCode: null, + resourceUsage: undefined, + pid: 0, + } satisfies ReturnType); openBrowser("https://example.com"); spawnSyncSpy.mockRestore(); expect(stderrOutput.join("")).toContain("https://example.com"); }); it("shows different message when browser opens successfully", () => { - // biome-ignore lint: test mock — spawnSync return type needs assertion const spawnSyncSpy = spyOn(Bun, "spawnSync").mockReturnValue({ exitCode: 0, stdout: Buffer.from(""), stderr: Buffer.from(""), success: true, - } satisfies Partial> as ReturnType); + signalCode: null, + resourceUsage: undefined, + pid: 0, + } satisfies ReturnType); openBrowser("https://example.com"); spawnSyncSpy.mockRestore(); expect(stderrOutput.join("")).toContain("https://example.com");