test.govlab/docs/core/analyzers/document.analyzer.test.ts
test.govlab/docs/core/analyzers/document.analyzer.test.ts is a file in Codebase Testing. 40 lines of code and 0 definitions.
import { ROOT, absolutePath } from "@ssot/paths";
import {
analyzeSync,
docMeta,
docNodeFor,
locationEntryOf,
nameFindingFor,
refScanOf,
} from "@govlab/docs/core/analyzers/document.analyzer.ts";
import { describe, expect, it } from "vitest";
import { docsHostFor } from "@govlab/docs/core/factories/environment.factory.ts";
import { join } from "node:path";
import { readFileSync } from "node:fs";
const host = await docsHostFor(ROOT);
const GUIDE = join(absolutePath("docArch"), "guides", "scale-govlab-docs.govlab.guide.md");
const guideMeta = docMeta(host.ctx, GUIDE, readFileSync(GUIDE, "utf8"));
const README = join(absolutePath("govlab.docs"), "README.md");
const readmeMeta = docMeta(host.ctx, README, readFileSync(README, "utf8"));
describe("docMeta", () => {
it("reads the frontmatter and the placement facts of a document", () => {
expect(guideMeta.fmType).toBe("guide");
expect(guideMeta.docFilename).toBe("scale-govlab-docs.govlab.guide.md");
expect(guideMeta.harnessOwned).toBe(false);
});
});
describe("the per-document checks", () => {
it("find the routed guide clean on location, spine and naming", () => {
const all = analyzeSync(host.ctx, guideMeta);
expect(all["location"]).toStrictEqual([]);
expect(all["spine"]).toStrictEqual([]);
expect(nameFindingFor(host.ctx, guideMeta)).toBeNull();
expect(refScanOf(host.ctx, guideMeta).defects).toStrictEqual([]);
});
it("give a routed document a graph node and a location entry, and a boundary document neither", () => {
expect(docNodeFor(host.ctx, guideMeta)?.name).toBe("scale-govlab-docs");
expect(locationEntryOf(host.ctx, guideMeta)).toMatchObject({ member: "govlab", name: "scale-govlab-docs" });
expect(docNodeFor(host.ctx, readmeMeta)).toBeNull();
expect(locationEntryOf(host.ctx, readmeMeta)).toBeNull();
});
});