20 lines
561 B
JavaScript
20 lines
561 B
JavaScript
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);
|
|
});
|