test.govlab/quality/core/converters/eslint.converter.test.ts

test.govlab/quality/core/converters/eslint.converter.test.ts is a file in Codebase Testing. 31 lines of code and 0 definitions.

import { expect, test } from "vitest";
import {
    jsRulesOf,
    namespacesOf,
    pluginMap,
    pluginsFromRecord,
    toRulesRecord,
} from "@govlab/quality/core/converters/eslint.converter.ts";
import type { InstalledPlugin } from "@govlab/quality/types/eslint.types.ts";

const installed: InstalledPlugin[] = [
    {
        plugin: { rules: {} },
        record: {
            configTarget: "eslint",
            ecosystem: "typescript",
            emitter: "eslint",
            isPlugin: true,
            pluginNamespace: "demo",
            tool: "eslint-plugin-demo",
        },
    },
];

test("toRulesRecord keeps only rule entries and jsRulesOf drops the typescript rules", () => {
    expect(toRulesRecord({ a: "error", b: { nope: true } })).toStrictEqual({ a: "error" });
    expect(jsRulesOf({ "@typescript-eslint/x": "error", y: "off" })).toStrictEqual({ y: "off" });
});

test("plugin records map by namespace", () => {
    expect(Object.keys(pluginsFromRecord({ p: {}, q: 1 }))).toStrictEqual(["p"]);
    expect(namespacesOf(installed)).toStrictEqual(["demo"]);
    expect(Object.keys(pluginMap(installed))).toStrictEqual(["demo"]);
});