test.rules/codemods/strings/codemod.strings.test.ts

test.rules/codemods/strings/codemod.strings.test.ts is a file in Codebase Testing. 48 lines of code and 0 definitions.

import {
    CONVERTIBLE,
    DEFAULT_SCOPE_NOUN,
    EMPTY_FROM,
    EXTENSION_REQUIRED,
    ROOT_REQUIRED,
    UNPAIRED_FROM,
    ambiguousTarget,
    appliedLine,
    blockedLine,
    gatedLine,
    handFixLine,
    leftAsWrittenLine,
    mapLine,
    missingTarget,
    noteLine,
    refusedLine,
    spellingHit,
    syntaxRefusal,
} from "@ssot/govlab/codemods/strings/codemod.strings.ts";
import { describe, expect, it } from "vitest";

describe("the codemod lines", () => {
    it("name the file a rewrite would have broken, and the reason a run is refused", () => {
        expect(syntaxRefusal("a.ts")).toContain("refused to write a.ts");
        expect(refusedLine(ROOT_REQUIRED)).toBe(`REFUSED: ${ROOT_REQUIRED}\n`);
        expect([EXTENSION_REQUIRED, UNPAIRED_FROM, EMPTY_FROM].every((reason) => reason.includes("--"))).toBe(true);
    });

    it("report what a run applied, mapped, blocked and left as written", () => {
        expect(mapLine("a.ts:1", "x", CONVERTIBLE)).toBe("a.ts:1\tx\tconvertible");
        expect(blockedLine("a.ts:1", "rule", "why")).toBe("a.ts:1 [rule] why");
        expect(gatedLine("line")).toBe("✖ line");
        expect(noteLine("line")).toBe("  line");
        expect(appliedLine("rule", 2, "edit(s)", "1", DEFAULT_SCOPE_NOUN)).toBe(
            "rule: applied 2 edit(s) across 1 program(s)",
        );
        expect(handFixLine("rule", 1)).toContain("rule: 1 finding(s) cannot be applied automatically");
        expect(leftAsWrittenLine("rule", 1)).toContain("left as written");
    });

    it("name the specifier that resolves to no file and the candidates that carry its name", () => {
        expect(missingTarget("./gone.ts", "gone.ts")).toContain("no file in its member is named 'gone.ts'");
        expect(ambiguousTarget("./a.ts", ["x/a.ts", "y/a.ts"])).toContain("carry its name: x/a.ts, y/a.ts");
    });

    it("name the American form of a checked spelling and the exclusion entry that admits a quoted one", () => {
        const hit = spellingHit("color", "american-spelling");
        expect(hit).toContain('American form is "color"');
        expect(hit).toContain('"american-spelling" entry of qualityMaster.toolExclude');
    });
});