| var parse = require('../'); |
| var test = require('tape'); |
| |
| test('boolean and alias is not unknown', function (t) { |
| var unknown = []; |
| function unknownFn(arg) { |
| unknown.push(arg); |
| return false; |
| } |
| var aliased = [ '-h', 'true', '--derp', 'true' ]; |
| var regular = [ '--herp', 'true', '-d', 'true' ]; |
| var opts = { |
| alias: { h: 'herp' }, |
| boolean: 'h', |
| unknown: unknownFn |
| }; |
| var aliasedArgv = parse(aliased, opts); |
| var propertyArgv = parse(regular, opts); |
| |
| t.same(unknown, ['--derp', '-d']); |
| t.end(); |
| }); |
| |
| test('flag boolean true any double hyphen argument is not unknown', function (t) { |
| var unknown = []; |
| function unknownFn(arg) { |
| unknown.push(arg); |
| return false; |
| } |
| var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], { |
| boolean: true, |
| unknown: unknownFn |
| }); |
| t.same(unknown, ['--tacos=good', 'cow', '-p']); |
| t.same(argv, { |
| honk: true, |
| _: [] |
| }); |
| t.end(); |
| }); |
| |
| test('string and alias is not unknown', function (t) { |
| var unknown = []; |
| function unknownFn(arg) { |
| unknown.push(arg); |
| return false; |
| } |
| var aliased = [ '-h', 'hello', '--derp', 'goodbye' ]; |
| var regular = [ '--herp', 'hello', '-d', 'moon' ]; |
| var opts = { |
| alias: { h: 'herp' }, |
| string: 'h', |
| unknown: unknownFn |
| }; |
| var aliasedArgv = parse(aliased, opts); |
| var propertyArgv = parse(regular, opts); |
| |
| t.same(unknown, ['--derp', '-d']); |
| t.end(); |
| }); |
| |
| test('default and alias is not unknown', function (t) { |
| var unknown = []; |
| function unknownFn(arg) { |
| unknown.push(arg); |
| return false; |
| } |
| var aliased = [ '-h', 'hello' ]; |
| var regular = [ '--herp', 'hello' ]; |
| var opts = { |
| default: { 'h': 'bar' }, |
| alias: { 'h': 'herp' }, |
| unknown: unknownFn |
| }; |
| var aliasedArgv = parse(aliased, opts); |
| var propertyArgv = parse(regular, opts); |
| |
| t.same(unknown, []); |
| t.end(); |
| unknownFn(); // exercise fn for 100% coverage |
| }); |
| |
| test('value following -- is not unknown', function (t) { |
| var unknown = []; |
| function unknownFn(arg) { |
| unknown.push(arg); |
| return false; |
| } |
| var aliased = [ '--bad', '--', 'good', 'arg' ]; |
| var opts = { |
| '--': true, |
| unknown: unknownFn |
| }; |
| var argv = parse(aliased, opts); |
| |
| t.same(unknown, ['--bad']); |
| t.same(argv, { |
| '--': ['good', 'arg'], |
| '_': [] |
| }) |
| t.end(); |
| }); |