test.coordination/core/validators/emission.validator.test.ts
test.coordination/core/validators/emission.validator.test.ts is a file in Codebase Testing. 39 lines of code and 0 definitions.
import { EMISSION_CALL, RULE_DIR, STEP_DIR } from "coordination-surface/tools/core/constants/report.constants.ts";
import {
claimedReportIds,
emittedIds,
stepEmittedIds,
} from "coordination-surface/tools/core/validators/emission.validator.ts";
import { describe, it } from "vitest";
import { join, resolve } from "node:path";
import { mkdirSync, mkdtempSync, rmSync } from "node:fs";
import assert from "node:assert/strict";
import { tmpdir } from "node:os";
import { writeVerbatim } from "@govlab/canonical-write";
describe("emittedIds", () => {
it("reads each report id a source emits by its quoted second argument, once", () => {
const source = [
`${EMISSION_CALL}root, "gates", report);`,
`${EMISSION_CALL}root, "gates", again);`,
`${EMISSION_CALL}root, id, report);`,
].join("\n");
assert.deepEqual(emittedIds(source), ["gates"]);
});
});
describe("stepEmittedIds and claimedReportIds", () => {
it("claim every step and rule by its file identity, plus the ids their sources emit", () => {
const root = mkdtempSync(join(tmpdir(), "coordination-emission-"));
try {
mkdirSync(resolve(root, STEP_DIR), { recursive: true });
mkdirSync(resolve(root, RULE_DIR), { recursive: true });
writeVerbatim(resolve(root, STEP_DIR, "gate.step.ts"), `${EMISSION_CALL}root, "certificate", report);`);
writeVerbatim(resolve(root, RULE_DIR, "board.rule.ts"), "export {};");
writeVerbatim(resolve(root, RULE_DIR, "notes.md"), "");
assert.deepEqual(stepEmittedIds(root), ["gate", "certificate"]);
assert.deepEqual([...claimedReportIds(root)], ["gate", "certificate", "board"]);
assert.deepEqual(stepEmittedIds(join(root, "absent")), []);
} finally {
rmSync(root, { force: true, recursive: true });
}
});
});