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

> 18 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-tool-resolver-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/quality/core/resolvers/tool.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/surface.resolver.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/resolvers/surface.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 {
    enabledToolRules,
    nativeToolConfig,
    resolveActiveEcosystems,
    resolveActiveSelectable,
    toolSection,
    toolSetting,
} from "@govlab/quality/core/resolvers/tool.resolver.ts";
import { expect, test } from "vitest";
import { ROOT } from "@ssot/paths";

test("tool settings fall back to their defaults and the workspace declares its ecosystems", async () => {
    expect(typeof (await toolSection(ROOT, "knip"))).toBe("object");
    expect(await toolSetting(ROOT, "govlab-missing-section", { command: "tool" })).toStrictEqual({ command: "tool" });
    expect(typeof (await nativeToolConfig(ROOT, "python", "ruff.toml"))).toBe("string");
    expect(Array.isArray(await enabledToolRules(ROOT, "rust", "clippy"))).toBe(true);
    expect(Array.isArray(await resolveActiveSelectable(ROOT))).toBe(true);
    expect(await resolveActiveEcosystems(ROOT)).toContain("typescript");
});
```
