test.govlab/quality/core/lexers/invocation.lexer.test.ts
test.govlab/quality/core/lexers/invocation.lexer.test.ts is a file in Codebase Testing. 27 lines of code and 0 definitions.
import { commandOf, tokenizeCommand } from "@govlab/quality/core/lexers/invocation.lexer.ts";
import { expect, test } from "vitest";
test("commandOf splits a command into its binary and prefix, with a fallback binary", () => {
expect(commandOf("python -m bandit", "bandit")).toStrictEqual({ bin: "python", prefix: ["-m", "bandit"] });
expect(commandOf("", "bandit")).toStrictEqual({ bin: "bandit", prefix: [] });
});
test("tokenizeCommand splits a plain invocation on spaces", () => {
expect(tokenizeCommand("npx eslint --fix")).toStrictEqual(["npx", "eslint", "--fix"]);
expect(tokenizeCommand(" npx eslint ")).toStrictEqual(["npx", "eslint"]);
expect(tokenizeCommand("")).toStrictEqual([]);
});
test("tokenizeCommand keeps a quoted argument whole and drops its quotes", () => {
expect(tokenizeCommand('npx eslint "src/**/*.ts" --format json')).toStrictEqual([
"npx",
"eslint",
"src/**/*.ts",
"--format",
"json",
]);
expect(tokenizeCommand("tool 'a b' c")).toStrictEqual(["tool", "a b", "c"]);
});
test("tokenizeCommand preserves an explicitly empty quoted argument", () => {
expect(tokenizeCommand('tool "" x')).toStrictEqual(["tool", "", "x"]);
});
test("tokenizeCommand joins a quoted run onto the token it touches", () => {
expect(tokenizeCommand('--config="a b"')).toStrictEqual(["--config=a b"]);
});