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

> 31 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-quality-core-converters-eslint-converter-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/quality/core/converters/eslint.converter.test.ts.txt

Listed in [test.govlab/quality/core/converters](https://banes-lab.com/api/source/testing/test.govlab/quality/core/converters.md), after [test.govlab/quality/core/converters/emitter.xml.converter.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/converters/emitter.xml.converter.test.ts.md) and before [test.govlab/quality/core/converters/exclusions.converter.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/converters/exclusions.converter.test.ts.md).

## Contained in

- [test.govlab/quality/core/converters](https://banes-lab.com/anatomy/testing/folder-testing-test-govlab-quality-core-converters.md)

## Source

```typescript
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"]);
});
```
