import { createProgram, parseCommandLine } from './helpers/utils'; import { CliCommandDefinition, CliCommandHandler } from '../src'; describe('Dynamic Options', () => { const def: CliCommandDefinition = { name: 'dynopt', description: 'Dynamic Option', allowDynamicOptions: true, options: [ { name: 'output', flag: '-o', description: 'output description', }, ], }; const prog = createProgram('test1', def, 'dynopt'); const p1 = parseCommandLine('--dynamic-option', prog); it('should parse a dynamic option when allowDynamicOption set to try', () => { expect(p1.command.name).toEqual('dynopt'); expect(p1.parsedCommandName).toEqual(''); expect(p1.arguments).toEqual({}); expect(p1.options).toHaveProperty('dynamicOption', true); expect(p1.errors.allErrors).toHaveLength(0); }); const prog2 = createProgram('test1', { ...def, allowDynamicOptions: false }, 'dynopt'); const p2 = parseCommandLine('--dynamic-option', prog2); it('should contain an error when allowDynamicOption set to false and dynamic option passed', () => { expect(p2.command.name).toEqual('dynopt'); expect(p2.parsedCommandName).toEqual(''); expect(p2.arguments).toEqual({}); expect(p2.errors.allErrors).toHaveLength(1); }); });