test.coordination/core/coordinators/board.coordinator.test.ts
test.coordination/core/coordinators/board.coordinator.test.ts is a file in Codebase Testing. 97 lines of code and 0 definitions.
import {
admitWaiter,
awaitChange,
runBarrier,
writingSeats,
} from "coordination-surface/tools/core/coordinators/board.coordinator.ts";
import { describe, it } from "vitest";
import assert from "node:assert/strict";
import { currentWaiters } from "coordination-surface/tools/core/registries/board.registry.ts";
import { join } from "node:path";
import { mkdtempSync } from "node:fs";
import { tmpdir } from "node:os";
import { watchAbsent } from "coordination-surface/tools/core/strings/board.strings.ts";
import { writeVerbatim } from "@govlab/canonical-write";
class ExitError extends Error {
public readonly code: number;
public readonly printed: string;
public constructor(code: number, printed: string) {
super(`exited ${String(code)}`);
this.name = "ExitError";
this.code = code;
this.printed = printed;
}
}
const NOW = 1_000_000;
const TIMEOUT = 5000;
const BOARD = "Agent A — ACTIVE\n Owns: tools\nAgent B — ACTIVE\n Owns: config\n";
const rootWithBoard = function rootWithBoard(): { root: string; board: string } {
const root = mkdtempSync(join(tmpdir(), "coordination-board-"));
const board = join(root, "collab.comms.active");
writeVerbatim(board, BOARD);
return { board, root };
};
describe("writingSeats", () => {
it("keeps a parked seat and drops a seat with no claim and no recent interaction", () => {
const { root } = rootWithBoard();
assert.deepEqual(writingSeats(root, ["A", "B"], ["B"], NOW), ["B"]);
});
});
describe("runBarrier", () => {
it("reports the barrier open when the board is missing and nobody is counted", () => {
const root = mkdtempSync(join(tmpdir(), "coordination-barrier-"));
assert.equal(runBarrier(root, join(root, "absent.board"), NOW).code, 1);
});
});
describe("admitWaiter", () => {
it("parks the first waiter, then refuses a second one when every counted seat is already parked", () => {
const { root, board } = rootWithBoard();
const first = admitWaiter(root, board, { agent: "A", now: NOW, pid: 7, target: board, timeout: TIMEOUT });
assert.equal(first.code, 0);
assert.equal(first.id, `7-${String(NOW)}`);
assert.deepEqual(
currentWaiters(root, NOW).map((waiter) => waiter.agent),
["A"],
);
const second = admitWaiter(root, board, { agent: "B", now: NOW, pid: 8, target: board, timeout: TIMEOUT });
assert.equal(second.code, 3);
assert.equal(second.id, "");
});
});
const stubProcess = function stubProcess(): () => void {
const held = {
argv: process.argv,
exit: process.exit.bind(process),
write: process.stdout.write.bind(process.stdout),
};
let printed = "";
process.argv = ["node", "board.entrypoint.ts"];
process.stdout.write = (chunk: Uint8Array | string): boolean => {
printed += String(chunk);
return true;
};
process.exit = (code?: number | string | null): never => {
throw new ExitError(Number(code), printed);
};
return () => {
process.argv = held.argv;
process.exit = held.exit;
process.stdout.write = held.write;
};
};
describe("awaitChange", () => {
it("refuses to wait on a surface that does not exist", async () => {
const restore = stubProcess();
try {
const target = "absent.board";
const absolute = join(tmpdir(), "coordination-await-absent", target);
await assert.rejects(awaitChange({ absolute, caller: "A", target }), (error: unknown) => {
assert.ok(error instanceof ExitError);
assert.deepEqual([error.code, error.printed], [2, watchAbsent(target)]);
return true;
});
} finally {
restore();
}
});
});