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 array with options hash', function (t) {
84 var aliased = [ '-h', 'derp' ];
85 var regular = [ '--herp', 'derp' ];
86 var alt = [ '--harp', 'derp' ];
88 alias: { 'h': ['herp', 'harp'] },
91 var aliasedArgv = parse(aliased, opts);
92 var propertyArgv = parse(regular, opts);
93 var altPropertyArgv = parse(alt, opts);
100 t.same(aliasedArgv, expected);
101 t.same(propertyArgv, expected);
102 t.same(altPropertyArgv, expected);
106 test('boolean and alias using explicit true', function (t) {
107 var aliased = [ '-h', 'true' ];
108 var regular = [ '--herp', 'true' ];
110 alias: { h: 'herp' },
113 var aliasedArgv = parse(aliased, opts);
114 var propertyArgv = parse(regular, opts);
121 t.same(aliasedArgv, expected);
122 t.same(propertyArgv, expected);
126 // regression, see https://github.com/substack/node-optimist/issues/71
127 test('boolean and --x=true', function(t) {
128 var parsed = parse(['--boool', '--other=true'], {
132 t.same(parsed.boool, true);
133 t.same(parsed.other, 'true');
135 parsed = parse(['--boool', '--other=false'], {
139 t.same(parsed.boool, true);
140 t.same(parsed.other, 'false');
144 test('boolean --boool=true', function (t) {
145 var parsed = parse(['--boool=true'], {
152 t.same(parsed.boool, true);
156 test('boolean --boool=false', function (t) {
157 var parsed = parse(['--boool=false'], {
164 t.same(parsed.boool, false);