test.govlab/quality/core/loaders/tool.loader.test.ts

test.govlab/quality/core/loaders/tool.loader.test.ts is a file in Codebase Testing. 59 lines of code and 0 definitions.

import { expect, test } from "vitest";
import { loadTools } from "@govlab/quality/core/loaders/tool.loader.ts";

const EXPECTED_TOOLS = [
    "actionlint",
    "bandit",
    "brakeman",
    "checkov",
    "checkstyle",
    "clang-tidy",
    "clippy",
    "clj-kondo",
    "credo",
    "depcheck",
    "dependency-cruiser",
    "detekt",
    "eslint",
    "go-critic",
    "golangci-lint",
    "gosec",
    "hadolint",
    "htmlhint",
    "jscpd",
    "kics",
    "knip",
    "lintr",
    "luacheck",
    "madge",
    "oxlint",
    "perlcritic",
    "phpcs",
    "phpmd",
    "pmd",
    "prettier",
    "pylint",
    "revive",
    "rubocop",
    "ruff",
    "scalastyle",
    "semgrep",
    "shellcheck",
    "slither",
    "sqlfluff",
    "staticcheck",
    "stylelint",
    "stylua",
    "swiftlint",
    "tflint",
    "trivy",
    "ts-prune",
    "yamllint",
];

test("loadTools discovers every adapter in the adapters folder and each registers one runner", async () => {
    const tools = await loadTools();
    expect(tools.map((runner) => runner.tool)).toStrictEqual(EXPECTED_TOOLS);
    for (const runner of tools) {
        expect(typeof runner.run).toBe("function");
        expect(runner.ecosystems.length).toBeGreaterThan(0);
    }
});