import { describe, expect, it } from "vitest" ;
import { parseTimeoutMs, parseTimeoutMsWithFallback } from "./parse-timeout.js" ;
describe("parseTimeoutMs" , () => {
it("parses positive string values" , () => {
expect(parseTimeoutMs("1500" )).toBe(1500 );
});
it("returns undefined for empty or invalid values" , () => {
expect(parseTimeoutMs(undefined)).toBeUndefined();
expect(parseTimeoutMs("" )).toBeUndefined();
expect(parseTimeoutMs("nope" )).toBeUndefined();
});
});
describe("parseTimeoutMsWithFallback" , () => {
it("returns the fallback for missing or empty values" , () => {
expect(parseTimeoutMsWithFallback(undefined, 3000 )).toBe(3000 );
expect(parseTimeoutMsWithFallback(null , 3000 )).toBe(3000 );
expect(parseTimeoutMsWithFallback(" " , 3000 )).toBe(3000 );
});
it("parses positive numbers and strings" , () => {
expect(parseTimeoutMsWithFallback(2500 , 3000 )).toBe(2500 );
expect(parseTimeoutMsWithFallback(2500 n, 3000 )).toBe(2500 );
expect(parseTimeoutMsWithFallback("2500" , 3000 )).toBe(2500 );
});
it("falls back on unsupported types by default" , () => {
expect(parseTimeoutMsWithFallback({}, 3000 )).toBe(3000 );
});
it("throws on unsupported types when requested" , () => {
expect(() => parseTimeoutMsWithFallback({}, 3000 , { invalidType: "error" })).toThrow(
"invalid --timeout" ,
);
});
it("throws on non-positive parsed values" , () => {
expect(() => parseTimeoutMsWithFallback("0" , 3000 )).toThrow("invalid --timeout: 0" );
expect(() => parseTimeoutMsWithFallback("-1" , 3000 )).toThrow("invalid --timeout: -1" );
});
});
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-06-09)
¤
*© Formatika GbR, Deutschland