test.rules/shared/analyzers/taxonomy.analyzer.test.ts
test.rules/shared/analyzers/taxonomy.analyzer.test.ts is a file in Codebase Testing. 70 lines of code and 0 definitions.
import { describe, expect, it } from "vitest";
import { namingFinding, placementFinding, testFinding } from "@ssot/govlab/shared/analyzers/taxonomy.analyzer.ts";
import { GOVERNED_ROOT } from "@ssot/govlab/shared/resolvers/anchor.resolver.ts";
import { relativePath } from "@ssot/paths";
const REGISTRY = "base.registry.ts";
describe("placementFinding", () => {
it("passes a conformant file and a generated file in its marker folder", () => {
expect(placementFinding(REGISTRY, ["core", "registries"], GOVERNED_ROOT)).toBeNull();
expect(placementFinding("ontology.generated.ts", ["core", "generated"], GOVERNED_ROOT)).toBeNull();
});
it("reports a generated file outside its marker folder, and a hand-written file inside one", () => {
expect(placementFinding("ontology.generated.ts", ["core", "registries"], GOVERNED_ROOT)?.messageId).toBe(
"markerMisplaced",
);
expect(placementFinding(REGISTRY, ["core", "generated"], GOVERNED_ROOT)?.messageId).toBe(
"markerFolderIntruder",
);
});
it("binds a backup copy to its backups folder", () => {
expect(placementFinding("site-2026.backup.conf", ["core", "backups"], GOVERNED_ROOT)).toBeNull();
expect(placementFinding("site-2026.backup.conf", ["core", "registries"], GOVERNED_ROOT)?.messageId).toBe(
"markerMisplaced",
);
});
it("leaves other name-exempt files unplaced and reports a folder that resolves to no role", () => {
expect(placementFinding("base.registry.test.ts", ["core", "anywhere"], GOVERNED_ROOT)).toBeNull();
expect(placementFinding(REGISTRY, ["core", "anywhere"], GOVERNED_ROOT)?.messageId).toBe("badShape");
});
});
describe("testFinding", () => {
const mirror = relativePath("codebase.testing.rules");
it("reports a test outside every mirror, and passes a source file there", () => {
expect(testFinding("base.registry.test.ts", ["core", "registries"], GOVERNED_ROOT)?.messageId).toBe(
"misplacedTest",
);
expect(testFinding(REGISTRY, ["core", "registries"], GOVERNED_ROOT)).toBeNull();
});
it("passes a test at its subject's path in a mirror and reports one whose subject is absent", () => {
expect(testFinding("location.resolver.test.ts", ["shared", "resolvers"], mirror)).toBeNull();
expect(testFinding("absent.resolver.test.ts", ["shared", "resolvers"], mirror)?.messageId).toBe(
"unmirroredTest",
);
});
it("reports a file in a mirror that carries no test marker", () => {
expect(testFinding("location.resolver.ts", ["shared", "resolvers"], mirror)?.messageId).toBe("nonTestInMirror");
});
});
describe("namingFinding", () => {
it("passes a file whose declared tag equals its folder's, and a name-exempt file", () => {
expect(namingFinding(REGISTRY, ["core", "registries"], GOVERNED_ROOT)).toBeNull();
expect(namingFinding("base.registry.test.ts", ["core", "registries"], GOVERNED_ROOT)).toBeNull();
expect(namingFinding("README.md", ["core", "registries"], GOVERNED_ROOT)).toBeNull();
});
it("reports an undeclared concern word and a tag that differs from its folder's", () => {
expect(namingFinding("base.gizmo.ts", ["core", "registries"], GOVERNED_ROOT)?.messageId).toBe("unparsable");
expect(namingFinding("base.validator.ts", ["core", "registries"], GOVERNED_ROOT)?.messageId).toBe(
"concernMismatch",
);
});
it("admits both the unit tag and the collection tag in a folder whose concern declares a collection", () => {
expect(namingFinding("base.asset.ts", ["core", "assets"], GOVERNED_ROOT)).toBeNull();
expect(namingFinding("base.assets.ts", ["core", "assets"], GOVERNED_ROOT)).toBeNull();
expect(namingFinding("base.registries.ts", ["core", "registries"], GOVERNED_ROOT)?.messageId).toBe(
"unparsable",
);
});
it("reads the concern of a file of any extension", () => {
expect(namingFinding("base.gizmo.css", ["core", "registries"], GOVERNED_ROOT)?.messageId).toBe("unparsable");
});
});