source: node_modules/minimist/test/bool.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 3.5 KB
Line 
1'use strict';
2
3var parse = require('../');
4var test = require('tape');
5
6test('flag boolean default false', function (t) {
7 var argv = parse(['moo'], {
8 boolean: ['t', 'verbose'],
9 default: { verbose: false, t: false },
10 });
11
12 t.deepEqual(argv, {
13 verbose: false,
14 t: false,
15 _: ['moo'],
16 });
17
18 t.deepEqual(typeof argv.verbose, 'boolean');
19 t.deepEqual(typeof argv.t, 'boolean');
20 t.end();
21
22});
23
24test('boolean groups', function (t) {
25 var argv = parse(['-x', '-z', 'one', 'two', 'three'], {
26 boolean: ['x', 'y', 'z'],
27 });
28
29 t.deepEqual(argv, {
30 x: true,
31 y: false,
32 z: true,
33 _: ['one', 'two', 'three'],
34 });
35
36 t.deepEqual(typeof argv.x, 'boolean');
37 t.deepEqual(typeof argv.y, 'boolean');
38 t.deepEqual(typeof argv.z, 'boolean');
39 t.end();
40});
41test('boolean and alias with chainable api', function (t) {
42 var aliased = ['-h', 'derp'];
43 var regular = ['--herp', 'derp'];
44 var aliasedArgv = parse(aliased, {
45 boolean: 'herp',
46 alias: { h: 'herp' },
47 });
48 var propertyArgv = parse(regular, {
49 boolean: 'herp',
50 alias: { h: 'herp' },
51 });
52 var expected = {
53 herp: true,
54 h: true,
55 _: ['derp'],
56 };
57
58 t.same(aliasedArgv, expected);
59 t.same(propertyArgv, expected);
60 t.end();
61});
62
63test('boolean and alias with options hash', function (t) {
64 var aliased = ['-h', 'derp'];
65 var regular = ['--herp', 'derp'];
66 var opts = {
67 alias: { h: 'herp' },
68 boolean: 'herp',
69 };
70 var aliasedArgv = parse(aliased, opts);
71 var propertyArgv = parse(regular, opts);
72 var expected = {
73 herp: true,
74 h: true,
75 _: ['derp'],
76 };
77 t.same(aliasedArgv, expected);
78 t.same(propertyArgv, expected);
79 t.end();
80});
81
82test('boolean and alias array with options hash', function (t) {
83 var aliased = ['-h', 'derp'];
84 var regular = ['--herp', 'derp'];
85 var alt = ['--harp', 'derp'];
86 var opts = {
87 alias: { h: ['herp', 'harp'] },
88 boolean: 'h',
89 };
90 var aliasedArgv = parse(aliased, opts);
91 var propertyArgv = parse(regular, opts);
92 var altPropertyArgv = parse(alt, opts);
93 var expected = {
94 harp: true,
95 herp: true,
96 h: true,
97 _: ['derp'],
98 };
99 t.same(aliasedArgv, expected);
100 t.same(propertyArgv, expected);
101 t.same(altPropertyArgv, expected);
102 t.end();
103});
104
105test('boolean and alias using explicit true', function (t) {
106 var aliased = ['-h', 'true'];
107 var regular = ['--herp', 'true'];
108 var opts = {
109 alias: { h: 'herp' },
110 boolean: 'h',
111 };
112 var aliasedArgv = parse(aliased, opts);
113 var propertyArgv = parse(regular, opts);
114 var expected = {
115 herp: true,
116 h: true,
117 _: [],
118 };
119
120 t.same(aliasedArgv, expected);
121 t.same(propertyArgv, expected);
122 t.end();
123});
124
125// regression, see https://github.com/substack/node-optimist/issues/71
126test('boolean and --x=true', function (t) {
127 var parsed = parse(['--boool', '--other=true'], {
128 boolean: 'boool',
129 });
130
131 t.same(parsed.boool, true);
132 t.same(parsed.other, 'true');
133
134 parsed = parse(['--boool', '--other=false'], {
135 boolean: 'boool',
136 });
137
138 t.same(parsed.boool, true);
139 t.same(parsed.other, 'false');
140 t.end();
141});
142
143test('boolean --boool=true', function (t) {
144 var parsed = parse(['--boool=true'], {
145 default: {
146 boool: false,
147 },
148 boolean: ['boool'],
149 });
150
151 t.same(parsed.boool, true);
152 t.end();
153});
154
155test('boolean --boool=false', function (t) {
156 var parsed = parse(['--boool=false'], {
157 default: {
158 boool: true,
159 },
160 boolean: ['boool'],
161 });
162
163 t.same(parsed.boool, false);
164 t.end();
165});
166
167test('boolean using something similar to true', function (t) {
168 var opts = { boolean: 'h' };
169 var result = parse(['-h', 'true.txt'], opts);
170 var expected = {
171 h: true,
172 _: ['true.txt'],
173 };
174
175 t.same(result, expected);
176 t.end();
177});
Note: See TracBrowser for help on using the repository browser.