Files
united-workforce/packages/workflow/__tests__/thread-pause-gate.test.ts
T
xiaoju cf17dedac3 refactor: organize workflow/src into 6 module folders
Move 34 flat modules into cas/, registry/, bundle/, extract/, engine/, util/.
Move gc.ts to engine/ (was in cas/) to avoid cas→engine reverse dependency.
Dependency direction: util ← cas ← extract ← engine, util ← registry ← bundle.
No logic changes — only file locations and import paths.

Refs #102
2026-05-08 01:22:01 +00:00

32 lines
867 B
TypeScript

import { describe, expect, test } from "bun:test";
import { createThreadPauseGate } from "../src/engine/thread-pause-gate.js";
describe("createThreadPauseGate", () => {
test("pause blocks awaitAfterYield until resume", async () => {
const gate = createThreadPauseGate();
gate.pause();
let progressed = false;
const wait = (async () => {
await gate.awaitAfterYield();
progressed = true;
})();
await new Promise((r) => setTimeout(r, 30));
expect(progressed).toBe(false);
gate.resume();
await wait;
expect(progressed).toBe(true);
});
test("duplicate pause and resume are rejected", () => {
const gate = createThreadPauseGate();
expect(gate.pause().ok).toBe(true);
expect(gate.pause().ok).toBe(false);
expect(gate.resume().ok).toBe(true);
expect(gate.resume().ok).toBe(false);
});
});