test.govlab/quality/core/validators/surface.validator.test.ts

test.govlab/quality/core/validators/surface.validator.test.ts is a file in Codebase Testing. 36 lines of code and 0 definitions.

import { expect, test } from "vitest";
import type { CanonicalData } from "@govlab/quality/types/canon.types.ts";
import { validateOwnerOverride } from "@govlab/quality/core/validators/surface.validator.ts";

const DATA: CanonicalData = {
    conflicts: [],
    ownership: [{ fixedOwners: ["go"], id: "format", ownerByLanguage: { go: "gofmt", ts: "prettier" } }],
    rows: [
        {
            canonicalId: "line-length",
            default: null,
            fidelity: "exact",
            fixed: false,
            knob: "width",
            langs: ["ts"],
            tool: "biome",
        },
    ],
    settings: [
        {
            default: null,
            dimension: "layout",
            id: "line-length",
            kind: "value",
            surface: "format",
            valueType: "number",
        },
    ],
};

test("validateOwnerOverride accepts a competing tool and names each refused override", () => {
    expect(validateOwnerOverride(undefined, DATA)).toStrictEqual([]);
    expect(validateOwnerOverride({ format: { ts: "biome" } }, DATA)).toStrictEqual([]);
    const kinds = validateOwnerOverride({ format: { go: "other", ts: "ruff" }, ghost: { ts: "biome" } }, DATA).map(
        (conflict) => conflict.kind,
    );
    expect(kinds.toSorted()).toStrictEqual(["fixed-owner", "tool-not-competitor", "unknown-surface"]);
});