test.govlab/docs/core/factories/document.output.factory.test.ts
test.govlab/docs/core/factories/document.output.factory.test.ts is a file in Codebase Testing. 35 lines of code and 0 definitions.
import { describe, expect, it } from "vitest";
import { mkdtempSync, rmSync } from "node:fs";
import { DEFAULT_ROOT_PREFIX } from "@govlab/docs/configuration/constants/document.constants.ts";
import { SpecOutputs } from "@govlab/docs/core/factories/document.output.factory.ts";
import { join } from "node:path";
import { tmpdir } from "node:os";
const ENGINE = {
declaredDocLocation: (): string => `${DEFAULT_ROOT_PREFIX}references/x.md`,
generateReadme: (): string => "# Readme body",
renderDeclaredDoc: (): string => "declared doc body",
};
const formatMarkdown = async function formatMarkdown(markdown: string): Promise<string> {
await Promise.resolve();
return markdown;
};
describe("SpecOutputs", () => {
it("builds a README spec and a typed document spec, and no chart spec for a module that is not analyzable", async () => {
const dir = mkdtempSync(join(tmpdir(), "docspec-"));
try {
const outputs = new SpecOutputs({ discoverAll: () => [], engine: ENGINE, formatMarkdown, root: dir });
const documents = [{ body: [], concern: "quality", name: "x", summary: "s", type: "reference" }];
const result = await outputs.moduleOutputs({
dir,
label: "mod",
manifest: { docs: {}, documents },
relPath: "test/mod",
});
expect(result.shared.hasCharts).toBe(false);
expect(result.specs.map((spec) => spec.driftCode)).toStrictEqual(["readme-drift", "doc-drift"]);
expect(await result.specs[0]?.produce("")).toContain("Readme body");
} finally {
rmSync(dir, { force: true, recursive: true });
}
});
});