test.govlab/docs/core/validators/location.validator.test.ts

test.govlab/docs/core/validators/location.validator.test.ts is a file in Codebase Testing. 46 lines of code and 0 definitions.

import { describe, expect, it } from "vitest";
import { DEFAULT_ROOT_PREFIX } from "@govlab/docs/configuration/constants/document.constants.ts";
import { DOC_FORMS } from "@govlab/docs/configuration/constants/form.constants.ts";
import type { DocLocationInput } from "@govlab/docs/types/location.types.ts";
import { docLocation } from "@govlab/docs/core/validators/location.validator.ts";
import { relativePath } from "@ssot/paths";

const registries = { concerns: ["architecture", "quality", "security", "frontend"], forms: DOC_FORMS };

const inputOf = function inputOf(relPath: string, form: string, concern: string): DocLocationInput {
    return { concern, form, kind: "authored", registries, relPath };
};

const codesOf = function codesOf(input: DocLocationInput): string[] {
    return docLocation(input).map((defect) => defect.code);
};

describe("docLocation", () => {
    it("passes a correctly placed authored document", () => {
        expect(codesOf(inputOf(`${DEFAULT_ROOT_PREFIX}plans/harden-auth.plan.md`, "plan", "security"))).toStrictEqual(
            [],
        );
    });

    it("reports a misplaced authored document with its routed path", () => {
        const [defect] = docLocation(inputOf("documentation/harden-auth.plan.md", "plan", "security"));
        expect(defect?.code).toBe("off-location");
        expect(defect?.expected).toBe(`${DEFAULT_ROOT_PREFIX}plans/harden-auth.plan.md`);
        const [atRoot] = docLocation(inputOf(`${relativePath("govlab.quality")}/notes.note.md`, "note", "quality"));
        expect(atRoot?.expected).toBe(`${DEFAULT_ROOT_PREFIX}notes/notes.note.md`);
    });

    it("passes a co-located boundary document and reports one inside the tree", () => {
        const colocated = inputOf(`${relativePath("govlab.quality")}/README.md`, "readme", "");
        expect(codesOf(colocated)).toStrictEqual([]);
        expect(codesOf(inputOf(`${DEFAULT_ROOT_PREFIX}references/architecture/README.md`, "readme", ""))).toStrictEqual(
            ["boundary-misplaced"],
        );
    });

    it("reports the router reason for an unknown concern and a contradicting axis", () => {
        expect(codesOf(inputOf(`${DEFAULT_ROOT_PREFIX}plans/gain/x.md`, "plan", "gain"))).toStrictEqual([
            "unknown-concern",
        ]);
        expect(
            codesOf(inputOf(`${DEFAULT_ROOT_PREFIX}changelogs/govlab-sync.md`, "changelog", "security")),
        ).toStrictEqual(["axis-contradiction"]);
    });

    it("exempts generated and template kinds anywhere", () => {
        expect(codesOf({ ...inputOf("anywhere/at/all.md", "plan", "security"), kind: "generated" })).toStrictEqual([]);
        expect(codesOf({ ...inputOf("x.md", "plan", "security"), kind: "template" })).toStrictEqual([]);
    });
});