test.build/core/resolvers/rule.resolver.test.ts
test.build/core/resolvers/rule.resolver.test.ts is a file in Codebase Testing. 34 lines of code and 0 definitions.
import { catalogRuleRecord, ruleRecordsOf } from "@banes-lab/build-scripts/core/resolvers/rule.resolver.ts";
import { describe, expect, it } from "vitest";
const TRANSIT = "architecture:encryption-in-transit";
const ACCESS = "architecture:access-control";
describe("ruleRecordsOf", () => {
it("resolves a rule id to the one site record its canonical concepts declare", () => {
const resolved = ruleRecordsOf(
[
{ canonical: ["encryption-in-transit"], ruleId: "tls/only" },
{ canonical: ["encryption-in-transit", "access-control"], ruleId: "mixed/rule" },
{ ruleId: "bare/rule" },
],
new Set([TRANSIT, ACCESS]),
);
expect(resolved.get("tls/only")).toBe(TRANSIT);
expect(resolved.has("mixed/rule")).toBe(false);
expect(resolved.has("bare/rule")).toBe(false);
});
it("merges the concepts every tool declares for one rule id", () => {
const resolved = ruleRecordsOf(
[
{ canonical: ["encryption-in-transit"], ruleId: "shared" },
{ canonical: ["access-control"], ruleId: "shared" },
],
new Set([TRANSIT, ACCESS]),
);
expect(resolved.has("shared")).toBe(false);
});
});
describe("catalogRuleRecord", () => {
it("answers no record for a rule id when the site holds none of its records", () => {
expect(catalogRuleRecord(new Set())("no-var")).toBeNull();
});
});