test.govlab/quality/core/parsers/invocation.parser.test.ts
test.govlab/quality/core/parsers/invocation.parser.test.ts is a file in Codebase Testing. 27 lines of code and 0 definitions.
import { describe, expect, it } from "vitest";
import { parseCliArgs } from "@govlab/quality/core/parsers/invocation.parser.ts";
describe("parseCliArgs", () => {
it("reads a concern, its paths and fix on by default", () => {
const args = parseCliArgs(["eslint", "src"]);
expect(args.concern).toBe("eslint");
expect(args.paths).toStrictEqual(["src"]);
expect(args.fix).toBe(true);
});
it("reads a known reporter", () => {
expect(parseCliArgs(["eslint", "--reporter", "json"]).reporter).toBe("json");
});
it("refuses an unknown reporter rather than falling back to the default", () => {
expect(() => parseCliArgs(["eslint", "--reporter", "xml"])).toThrow('unknown reporter "xml"');
});
it("refuses a value flag with no value", () => {
expect(() => parseCliArgs(["eslint", "--config"])).toThrow("--config needs a value");
expect(() => parseCliArgs(["eslint", "--reporter", "--no-fix"])).toThrow("--reporter needs a value");
});
it("refuses an unknown flag and an unknown concern", () => {
expect(() => parseCliArgs(["eslint", "--fast"])).toThrow('unknown flag "--fast"');
expect(() => parseCliArgs(["lints"])).toThrow('unknown concern "lints"');
});
it("reads install positionals as ecosystems", () => {
expect(parseCliArgs(["install", "python", "go"]).ecosystems).toStrictEqual(["python", "go"]);
});
});