import test from "node:test"; import assert from "node:assert/strict"; import { createSerializedRunner } from "./serialized-runner.mjs"; test("serialized runner releases active task after timeout", async () => { let calls = 0; const runner = createSerializedRunner( () => new Promise(() => { calls += 1; }), { timeoutMs: 10, timeoutErrorMessage: "HEARTBEAT_TIMEOUT" }, ); await assert.rejects(() => runner(), /HEARTBEAT_TIMEOUT/); await assert.rejects(() => runner(), /HEARTBEAT_TIMEOUT/); assert.equal(calls, 2); });