import { Command } from "commander" ;
import { describe, expect, it } from "vitest" ;
import { collectOption, parsePositiveIntOrUndefined, resolveActionArgs } from "./helpers.js" ;
describe("program helpers" , () => {
it("collectOption appends values in order" , () => {
expect(collectOption("a" )).toEqual(["a" ]);
expect(collectOption("b" , ["a" ])).toEqual(["a" , "b" ]);
});
it.each([
{ value: undefined, expected: undefined },
{ value: null , expected: undefined },
{ value: "" , expected: undefined },
{ value: 5 , expected: 5 },
{ value: 5 .9 , expected: 5 },
{ value: 0 , expected: undefined },
{ value: -1 , expected: undefined },
{ value: Number.NaN, expected: undefined },
{ value: "10" , expected: 10 },
{ value: "10ms" , expected: 10 },
{ value: "0" , expected: undefined },
{ value: "nope" , expected: undefined },
{ value: true , expected: undefined },
])("parsePositiveIntOrUndefined(%j)" , ({ value, expected }) => {
expect(parsePositiveIntOrUndefined(value)).toBe(expected);
});
it("resolveActionArgs returns args when command has arg array" , () => {
const command = new Command();
(command as Command & { args?: string[] }).args = ["one" , "two" ];
expect(resolveActionArgs(command)).toEqual(["one" , "two" ]);
});
it("resolveActionArgs returns empty array for missing/invalid args" , () => {
const command = new Command();
(command as unknown as { args?: unknown }).args = "not-an-array" ;
expect(resolveActionArgs(command)).toEqual([]);
expect(resolveActionArgs(undefined)).toEqual([]);
});
});
Messung V0.5 in Prozent C=99 H=99 G=98
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland