test: restore complete Worker descriptors
(cherry picked from commit a7d227e6227b2c1d20ae4a9d5107be57980463a1)
This commit is contained in:
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user