test.rules/shared/analyzers/check.analyzer.test.ts
test.rules/shared/analyzers/check.analyzer.test.ts is a file in Codebase Testing. 24 lines of code and 0 definitions.
import { DECLARING_CALLEE, declarationsIn } from "@ssot/govlab/shared/analyzers/check.analyzer.ts";
import { checksLine, unreadableDeclaration } from "@ssot/govlab/shared/strings/rule.strings.ts";
import { describe, expect, it } from "vitest";
import type { ReadDeclaration } from "@ssot/govlab/types/check.types.ts";
describe("declarationsIn", () => {
it("reads each declaration's string-literal refs, wherever the call sits", () => {
const text = [
`${DECLARING_CALLEE}({ detects: ["a:b"], enforces: [] });`,
`export default { meta: { docs: { checks: ${DECLARING_CALLEE}({ detects: [], enforces: ["c:d"] }) } } };`,
].join("\n");
const expected: readonly ReadDeclaration[] = [
{ detects: ["a:b"], enforces: [] },
{ detects: [], enforces: ["c:d"] },
];
expect(declarationsIn("probe.ts", text)).toStrictEqual(expected);
});
it("reads a declaration it cannot resolve statically as unreadable", () => {
expect(declarationsIn("probe.ts", `${DECLARING_CALLEE}({ detects: REFS, enforces: [] });`)).toStrictEqual([
null,
]);
expect(unreadableDeclaration("probe.ts", DECLARING_CALLEE)).toContain("the index cannot read");
expect(checksLine(2, "index.json")).toContain("indexed 2 check declaration(s)");
});
});