test.govlab/quality/core/quality/eslint/valid-test-surface.eslint.rule.test.ts
test.govlab/quality/core/quality/eslint/valid-test-surface.eslint.rule.test.ts is a file in Codebase Testing. 33 lines of code and 0 definitions.
import { expect, test } from "vitest";
import { RuleTester } from "eslint";
import { relativePath } from "@ssot/paths";
import validTestSurface from "@govlab/quality/core/quality/eslint/valid-test-surface.eslint.rule.ts";
const runCases = function runCases(
name: string,
ruleModule: Parameters<RuleTester["run"]>[1],
cases: Parameters<RuleTester["run"]>[2],
): number {
const tester = new RuleTester({ languageOptions: { ecmaVersion: 2025, sourceType: "module" } });
tester.run(name, ruleModule, cases);
return cases.valid.length + cases.invalid.length;
};
const REPO = "/repo";
const QUALITY = `${REPO}/${relativePath("govlab.quality")}`;
const FILE = `${QUALITY}/tests/foo.test.ts`;
test("valid-test-surface accepts canonical surface tags, rejects unknown ones", () => {
expect(
runCases("valid-test-surface", validTestSurface, {
invalid: [
{ code: "test('[bogus] does a thing', () => {});", errors: 1, filename: FILE },
{ code: "it('[not-a-surface] works', () => {});", errors: 1, filename: FILE },
],
valid: [
{ code: "test('[semantic] correct output', () => {});", filename: FILE },
{ code: "test('[security] rejects injection', () => {});", filename: FILE },
{ code: "test('[semantic-correctness] full id form', () => {});", filename: FILE },
{ code: "test('no surface tag at all', () => {});", filename: FILE },
{ code: "test('[bogus] not in a test file', () => {});", filename: `${QUALITY}/src/foo.ts` },
],
}),
).toBeGreaterThan(0);
});