test.coordination/core/validators/record.validator.test.ts
test.coordination/core/validators/record.validator.test.ts is a file in Codebase Testing. 64 lines of code and 0 definitions.
import {
TENSION_REQUIRED,
checkSchema,
checkTension,
recordFinding,
} from "coordination-surface/tools/core/validators/record.validator.ts";
import { describe, it } from "vitest";
import assert from "node:assert/strict";
const PATH = "records.md";
const rulesOf = function rulesOf(findings: readonly { readonly rule: string }[]): string[] {
return findings.map((finding) => finding.rule);
};
const tension = function tension(keys: Readonly<Record<string, string>>): Record<string, string> {
return { ...Object.fromEntries(TENSION_REQUIRED.map((key) => [key, "x"])), ...keys };
};
const tensionRules = function tensionRules(keys: Readonly<Record<string, string>>, complete = true): string[] {
const findings = checkTension(PATH, { id: "T1", keys: complete ? tension(keys) : keys, line: 1 });
return rulesOf(findings);
};
describe("recordFinding", () => {
it("builds a declare finding under the record rule family", () => {
const finding = recordFinding("missingKey", PATH, 3, "R1", "R1 has no source", "add source");
assert.equal(finding.rule, "record/missingKey");
assert.equal(finding.remediation.decide, "add source");
assert.deepEqual(finding.stack.at(-1), { check: "missingKey", resolved: "failed" });
});
});
describe("checkSchema", () => {
it("reports a missing key, a tier or derivation outside the vocabulary, and a dispute left unsurfaced", () => {
const record = {
id: "R1",
keys: { confidence: "guess", derivation: "stolen", statement: "s", status: "disputed", type: "fact" },
line: 3,
};
assert.deepEqual(rulesOf(checkSchema(PATH, record)), [
"record/missingKey",
"record/unknownTier",
"record/unknownDerivation",
"record/disputedNotSurfaced",
]);
const clean = {
id: "R2",
keys: {
confidence: "inferred",
see: "R1",
source: "here",
statement: "s",
status: "disputed",
type: "fact",
},
line: 9,
};
assert.deepEqual(checkSchema(PATH, clean), []);
});
});
describe("checkTension", () => {
it("reports a missing key, an unknown kind, and a kind its incompatibility contradicts", () => {
assert.equal(tensionRules({ kind: "real" }, false).length, TENSION_REQUIRED.length - 1);
assert.deepEqual(tensionRules({ kind: "odd" }), ["record/unknownKind"]);
assert.deepEqual(tensionRules({ incompatible: "b", kind: "apparent" }), ["record/kindContradiction"]);
assert.deepEqual(tensionRules({ incompatible: "none", kind: "real" }), ["record/kindContradiction"]);
assert.deepEqual(tensionRules({ incompatible: "none", kind: "apparent" }), []);
});
});