test: restore complete Worker descriptors

(cherry picked from commit a7d227e6227b2c1d20ae4a9d5107be57980463a1)
This commit is contained in:
usr-bin-roygbiv
2026-07-28 14:24:43 +00:00
committed by can1357
parent 856765ad51
commit 197fd2df02
2 changed files with 16 additions and 4 deletions
@@ -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);
});
@@ -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);
});
});