test.govlab/patterns/core/analyzers/definition.analyzer.test.ts
test.govlab/patterns/core/analyzers/definition.analyzer.test.ts is a file in Codebase Testing. 30 lines of code and 0 definitions.
import { deadFindings, duplicateFindings } from "@govlab/patterns/core/analyzers/definition.analyzer.ts";
import { describe, expect, it } from "vitest";
import { definition } from "./code.fixture.ts";
const BODY = 200;
const identifier = function identifier(text: string): Record<string, unknown> {
return { nodeType: "identifier", text };
};
describe("deadFindings", () => {
it("flags an unreferenced module-level definition and spares a referenced or test-used one", () => {
const symbols = [definition("orphan", "f.ts"), definition("used", "f.ts"), definition("tested", "f.ts")];
const records = [identifier("orphan"), identifier("used"), identifier("used")];
const dead = deadFindings(symbols, records, new Set(["tested"]));
expect(dead.map((finding) => finding.name)).toStrictEqual(["orphan"]);
});
it("spares an exported definition and a Go entry point", () => {
const symbols = [definition("api", "f.ts", { exported: true }), definition("main", "cmd.go")];
expect(deadFindings(symbols, [], new Set())).toStrictEqual([]);
});
});
describe("duplicateFindings", () => {
it("flags an identical exported body in more than one file", () => {
const twin = { exported: true, hash: "same", size: BODY };
const found = duplicateFindings([definition("dup", "a.ts", twin), definition("dup", "b.ts", twin)]);
expect(found.map((finding) => finding.members)).toStrictEqual([["a.ts", "b.ts"]]);
});
it("ignores an identical body too small to matter", () => {
const small = { exported: true, hash: "same", size: 1 };
expect(duplicateFindings([definition("s", "a.ts", small), definition("s", "b.ts", small)])).toStrictEqual([]);
});
});