diff --git a/denops/@denops-private/worker_test.ts b/denops/@denops-private/worker_test.ts index 9fa0ed96..ae1fa870 100644 --- a/denops/@denops-private/worker_test.ts +++ b/denops/@denops-private/worker_test.ts @@ -49,10 +49,13 @@ function stubConsole() { function stubMessage() { const workerGlobal = globalThis as DedicatedWorkerGlobalScope; + // Use separate sandboxes so that stubs are restored before the defined + // properties are removed. + const defineSandbox = sinon.createSandbox(); const sandbox = sinon.createSandbox(); - sandbox.define(workerGlobal, "postMessage", () => {}); + defineSandbox.define(workerGlobal, "postMessage", () => {}); const postMessage = sandbox.stub(workerGlobal, "postMessage"); - sandbox.define(workerGlobal, "onmessage", null); + defineSandbox.define(workerGlobal, "onmessage", null); const onmessage = sandbox.stub(workerGlobal, "onmessage"); const fakeHostMessage = (data: unknown) => { workerGlobal.onmessage?.(new MessageEvent("message", { data })); @@ -64,6 +67,7 @@ function stubMessage() { fakeHostMessage, [Symbol.dispose]() { sandbox.restore(); + defineSandbox.restore(); }, }; } diff --git a/tests/denops/testutil/shared_server_test.ts b/tests/denops/testutil/shared_server_test.ts index 1e3ac894..ddc8f1f1 100644 --- a/tests/denops/testutil/shared_server_test.ts +++ b/tests/denops/testutil/shared_server_test.ts @@ -107,13 +107,15 @@ Deno.test("useSharedServer()", async (t) => { await t.step("rejects if the server startup times out (flaky)", async () => { await retry(async () => { - await assertRejects( + // NOTE: The message of the timeout error differs between Deno versions, + // so check the error name instead. + const error = await assertRejects( async () => { await using _server = await useSharedServer({ timeout: 0 }); }, - Error, - "Signal timed out", + DOMException, ); + assertEquals(error.name, "TimeoutError"); }); }); });