test.govlab/docs/core/validators/package.validator.test.ts
test.govlab/docs/core/validators/package.validator.test.ts is a file in Codebase Testing. 29 lines of code and 0 definitions.
import { afterAll, describe, expect, it } from "vitest";
import { mkdirSync, mkdtempSync, rmSync } from "node:fs";
import { deadScriptRefs } from "@govlab/docs/core/validators/package.validator.ts";
import { join } from "node:path";
import { tmpdir } from "node:os";
import { writeVerbatim } from "@govlab/canonical-write";
const root = mkdtempSync(join(tmpdir(), "doc-scripts-"));
mkdirSync(join(root, "bin"), { recursive: true });
writeVerbatim(join(root, "bin", "real.ts"), "");
const PKG = join(root, "package.json");
writeVerbatim(
PKG,
JSON.stringify({
scripts: {
build: "node bin/real.ts && node 'bin/gone.ts'",
glob: "node bin/*.ts",
vendor: "node node_modules/x/cli.js",
},
}),
);
afterAll(() => {
rmSync(root, { force: true, recursive: true });
});
describe("deadScriptRefs", () => {
it("reports a script path that does not exist and skips globs and vendored paths", () => {
expect(deadScriptRefs(PKG)).toStrictEqual([{ path: "bin/gone.ts", script: "build" }]);
expect(deadScriptRefs(join(root, "absent.json"))).toStrictEqual([]);
});
});