test.govlab/quality/core/adapters/invocation.adapter.test.ts
test.govlab/quality/core/adapters/invocation.adapter.test.ts is a file in Codebase Testing. 18 lines of code and 0 definitions.
import { commandOutput, commandVersion, spawnTool } from "@govlab/quality/core/adapters/invocation.adapter.ts";
import { expect, test } from "vitest";
import process from "node:process";
import { signalKilled } from "@govlab/quality/core/predicates/failure.predicate.ts";
test("spawnTool runs a binary synchronously and captures its output", () => {
const result = spawnTool(process.execPath, ["-e", "process.stdout.write('ok')"], { encoding: "utf8" });
expect(signalKilled(result.status)).toBe(false);
expect(result.status).toBe(0);
expect(result.stdout).toBe("ok");
});
test("commandOutput returns a successful command's stdout and throws on a failed one", () => {
expect(commandOutput(process.execPath, ["-e", "process.stdout.write('rules')"])).toBe("rules");
expect(() => commandOutput(process.execPath, ["-e", "process.exit(2)"])).toThrow("failed");
});
test("commandVersion reads the first output line and answers unknown for a failed command", () => {
expect(commandVersion(process.execPath, ["-e", String.raw`process.stdout.write('1.2.3\nmore')`])).toBe("1.2.3");
expect(commandVersion(process.execPath, ["-e", "process.exit(1)"])).toBe("unknown");
});