import { describe, expect, it } from 'vitest'; import { consumeTimeoutFlag, parseTimeout } from '../src/cli/timeouts.js'; describe('CLI timeout parsing', () => { it('accepts positive integer millisecond values', () => { expect(parseTimeout('2500', 30_000)).toBe(2_500); const args = ['--timeout', '7500', 'server']; expect(consumeTimeoutFlag(args, 0)).toBe(7_500); expect(args).toEqual(['server']); }); it('falls back for non-positive and partially numeric environment values', () => { for (const value of ['0', '-1', '1s', '10abc', '100.5']) { expect(parseTimeout(value, 30_000)).toBe(30_000); } }); it('rejects non-positive and partially numeric CLI flag values', () => { for (const value of ['0', '-1', '1s', '10abc', '100.5']) { expect(() => consumeTimeoutFlag(['--timeout', value], 0)).toThrow( '--timeout must be a positive integer (milliseconds).' ); } }); });