Spaces:
Running
Running
| 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(); | |
| }); | |