# test.govlab/quality/core/resolvers/rule.resolver.test.ts

> 26 lines of code and 0 definitions.

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

Listed in [test.govlab/quality/core/resolvers](https://banes-lab.com/api/source/testing/test.govlab/quality/core/resolvers.md), after [test.govlab/quality/core/resolvers/plan.resolver.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/resolvers/plan.resolver.test.ts.md) and before [test.govlab/quality/core/resolvers/scope.resolver.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/resolvers/scope.resolver.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, expect, it } from "vitest";
import type { ConcernConfig } from "@govlab/quality/types/concern.types.ts";
import { enabledRuleIds } from "@govlab/quality/core/resolvers/rule.resolver.ts";

const LONG_FN = 20;
const MANY_PARAMS = 4;

const concerns = function concerns(entries: [string, number][]): ConcernConfig {
    return Object.fromEntries(entries);
};

const CLIPPY_CONCERNS = concerns([
    ["long-function", LONG_FN],
    ["too-many-params", MANY_PARAMS],
]);

describe("enabledRuleIds", () => {
    it("maps the clippy threshold concerns to their lint ids for -W enablement", () => {
        const lints = enabledRuleIds(CLIPPY_CONCERNS, "rust", "clippy");
        expect(lints).toContain("clippy::too_many_lines");
        expect(lints).toContain("clippy::too_many_arguments");
    });

    it("returns a deduped, sorted set", () => {
        const lints = enabledRuleIds(CLIPPY_CONCERNS, "rust", "clippy");
        expect(lints).toEqual([...new Set(lints)].sort((a, b) => a.localeCompare(b)));
    });

    it("returns [] for a tool with no mapped concerns", () => {
        expect(enabledRuleIds(concerns([["long-function", LONG_FN]]), "rust", "no-such-tool")).toEqual([]);
    });
});
```
