test.govlab/docs/core/parsers/ontology.parser.test.ts

test.govlab/docs/core/parsers/ontology.parser.test.ts is a file in Codebase Testing. 34 lines of code and 0 definitions.

import { REF_COLLECTIONS, createGovlabContext } from "@govlab/context";
import { describe, expect, it } from "vitest";
import { ontologyRefs } from "@govlab/docs/core/parsers/ontology.parser.ts";

const DOC = [
    "---",
    "name: sample",
    "---",
    "",
    "The check `reasoning:invariant:epi-reachable-check` joins `architecture:caching` and `lexicon:silent-failure`.",
    "A placeholder `reasoning:<kind>:<id>` and a bare word `architecture:` are not refs.",
    "A planted `reasoning:invariant:epi-no-such-invariant` and `architecture:no-such-principle` must fail.",
    "",
    "```text",
    "`architecture:inside-a-fence` is code, not a ref",
    "```",
].join("\n");

describe("ontologyRefs", () => {
    it("finds every collection-prefixed ref outside code and skips placeholders", () => {
        expect(ontologyRefs(DOC, REF_COLLECTIONS).map((found) => found.ref)).toStrictEqual([
            "reasoning:invariant:epi-reachable-check",
            "architecture:caching",
            "lexicon:silent-failure",
            "reasoning:invariant:epi-no-such-invariant",
            "architecture:no-such-principle",
        ]);
    });

    it("hands the context resolver refs it resolves and refs it refuses", () => {
        const { resolveRef } = createGovlabContext();
        expect(resolveRef("reasoning:invariant:epi-reachable-check")).toBe(true);
        expect(resolveRef("architecture:caching")).toBe(true);
        expect(resolveRef("reasoning:invariant:epi-no-such-invariant")).toBe(false);
        expect(resolveRef("architecture:no-such-principle")).toBe(false);
    });
});