1 var parse = require('../');
2 var test = require('tape');
4 test('flag boolean default false', function (t) {
5 var argv = parse(['moo'], {
6 boolean: ['t', 'verbose'],
7 default: { verbose: false, t: false }
16 t.deepEqual(typeof argv.verbose, 'boolean');
17 t.deepEqual(typeof argv.t, 'boolean');
22 test('boolean groups', function (t) {
23 var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], {
24 boolean: ['x','y','z']
31 _ : [ 'one', 'two', 'three' ]
34 t.deepEqual(typeof argv.x, 'boolean');
35 t.deepEqual(typeof argv.y, 'boolean');
36 t.deepEqual(typeof argv.z, 'boolean');
39 test('boolean and alias with chainable api', function (t) {
40 var aliased = [ '-h', 'derp' ];
41 var regular = [ '--herp', 'derp' ];
43 herp: { alias: 'h', boolean: true }
45 var aliasedArgv = parse(aliased, {
49 var propertyArgv = parse(regular, {
59 t.same(aliasedArgv, expected);
60 t.same(propertyArgv, expected);
64 test('boolean and alias with options hash', function (t) {
65 var aliased = [ '-h', 'derp' ];
66 var regular = [ '--herp', 'derp' ];
68 alias: { 'h': 'herp' },
71 var aliasedArgv = parse(aliased, opts);
72 var propertyArgv = parse(regular, opts);
78 t.same(aliasedArgv, expected);
79 t.same(propertyArgv, expected);
83 test('boolean and alias using explicit true', function (t) {
84 var aliased = [ '-h', 'true' ];
85 var regular = [ '--herp', 'true' ];
90 var aliasedArgv = parse(aliased, opts);
91 var propertyArgv = parse(regular, opts);
98 t.same(aliasedArgv, expected);
99 t.same(propertyArgv, expected);
103 // regression, see https://github.com/substack/node-optimist/issues/71
104 test('boolean and --x=true', function(t) {
105 var parsed = parse(['--boool', '--other=true'], {
109 t.same(parsed.boool, true);
110 t.same(parsed.other, 'true');
112 parsed = parse(['--boool', '--other=false'], {
116 t.same(parsed.boool, true);
117 t.same(parsed.other, 'false');