From 5ae875a491ef6433e61920e208e67680ac295f14 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 13 Apr 2026 21:03:06 +0000 Subject: [PATCH 1/2] Initial plan From 919fd3c87f56510d856ed1bbf46654ffafe11f7e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 13 Apr 2026 21:14:45 +0000 Subject: [PATCH 2/2] fix: close REPL servers after each test to prevent Jest worker from hanging Agent-Logs-Url: https://github.com/counterfact/api-simulator/sessions/6ff99a5b-2b06-4f18-b2a7-2b880122ff00 --- .changeset/fix-jest-open-handles.md | 5 +++++ test/repl/repl.test.ts | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 .changeset/fix-jest-open-handles.md diff --git a/.changeset/fix-jest-open-handles.md b/.changeset/fix-jest-open-handles.md new file mode 100644 index 000000000..ed48bbd81 --- /dev/null +++ b/.changeset/fix-jest-open-handles.md @@ -0,0 +1,5 @@ +--- +"counterfact": patch +--- + +Fix Jest worker process failing to exit gracefully by closing REPL servers after each test in the repl test suite. diff --git a/test/repl/repl.test.ts b/test/repl/repl.test.ts index bebc0beb9..18887c1ad 100644 --- a/test/repl/repl.test.ts +++ b/test/repl/repl.test.ts @@ -1,6 +1,6 @@ import type { REPLServer } from "node:repl"; -import { jest } from "@jest/globals"; +import { afterEach, jest } from "@jest/globals"; import { createCompleter, startRepl } from "../../src/repl/repl.js"; import type { CompleterCallback } from "../../src/repl/repl.js"; @@ -101,9 +101,21 @@ function createHarness(scenarioRegistry?: ScenarioRegistry) { scenarioRegistry, ); + openServers.push(harness.server); + return { config, contextRegistry, harness, registry }; } +const openServers: REPLServer[] = []; + +afterEach(() => { + for (const server of openServers) { + server.close(); + } + + openServers.length = 0; +}); + describe("REPL", () => { it("turns on the proxy globally", () => { const { config, harness } = createHarness();