diff --git a/packages/coding-agent/test/terminal-output-worker-client.test.ts b/packages/coding-agent/test/terminal-output-worker-client.test.ts index 781aa4914..584fce6ad 100644 --- a/packages/coding-agent/test/terminal-output-worker-client.test.ts +++ b/packages/coding-agent/test/terminal-output-worker-client.test.ts @@ -10,7 +10,8 @@ class CleanExitWorker extends EventTarget { } test("legacy replay rejects when its worker exits before responding", async () => { - const originalWorker = globalThis.Worker; + const originalWorkerDescriptor = Object.getOwnPropertyDescriptor(globalThis, "Worker"); + expect(originalWorkerDescriptor).toBeDefined(); Object.defineProperty(globalThis, "Worker", { configurable: true, value: CleanExitWorker }); try { let outcome: { error?: unknown; settled: boolean } = { settled: false }; @@ -29,6 +30,11 @@ test("legacy replay rejects when its worker exits before responding", async () = expect(outcome.error).toBeInstanceOf(Error); expect((outcome.error as Error).message).toBe("Terminal output worker exited before responding"); } finally { - Object.defineProperty(globalThis, "Worker", { configurable: true, value: originalWorker }); + if (originalWorkerDescriptor) { + Object.defineProperty(globalThis, "Worker", originalWorkerDescriptor); + } else { + Reflect.deleteProperty(globalThis, "Worker"); + } } + expect(Object.getOwnPropertyDescriptor(globalThis, "Worker")).toEqual(originalWorkerDescriptor); }); diff --git a/packages/coding-agent/test/tools/hub/launch-compat.test.ts b/packages/coding-agent/test/tools/hub/launch-compat.test.ts index 822b2a348..ef004bf00 100644 --- a/packages/coding-agent/test/tools/hub/launch-compat.test.ts +++ b/packages/coding-agent/test/tools/hub/launch-compat.test.ts @@ -64,7 +64,8 @@ describe("launch broker protocol compatibility", () => { } satisfies DaemonBrokerClient; vi.spyOn(daemonClient, "daemonClientForProject").mockResolvedValue(client); - const originalWorker = globalThis.Worker; + const originalWorkerDescriptor = Object.getOwnPropertyDescriptor(globalThis, "Worker"); + expect(originalWorkerDescriptor).toBeDefined(); Object.defineProperty(globalThis, "Worker", { configurable: true, value: CleanExitWorker }); try { const result = await executeLaunch({ cwd: projectDir } as ToolSession, { @@ -76,7 +77,12 @@ describe("launch broker protocol compatibility", () => { expect(result.content).toEqual([{ type: "text", text: "ready\n[web: running; cursor=42]" }]); expect(result.details?.terminalRows).toBeUndefined(); } finally { - Object.defineProperty(globalThis, "Worker", { configurable: true, value: originalWorker }); + if (originalWorkerDescriptor) { + Object.defineProperty(globalThis, "Worker", originalWorkerDescriptor); + } else { + Reflect.deleteProperty(globalThis, "Worker"); + } } + expect(Object.getOwnPropertyDescriptor(globalThis, "Worker")).toEqual(originalWorkerDescriptor); }); });