Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80540 views
1
var parse = require('../');
2
var test = require('tape');
3
4
test('flag boolean default false', function (t) {
5
var argv = parse(['moo'], {
6
boolean: ['t', 'verbose'],
7
default: { verbose: false, t: false }
8
});
9
10
t.deepEqual(argv, {
11
verbose: false,
12
t: false,
13
_: ['moo']
14
});
15
16
t.deepEqual(typeof argv.verbose, 'boolean');
17
t.deepEqual(typeof argv.t, 'boolean');
18
t.end();
19
20
});
21
22
test('boolean groups', function (t) {
23
var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], {
24
boolean: ['x','y','z']
25
});
26
27
t.deepEqual(argv, {
28
x : true,
29
y : false,
30
z : true,
31
_ : [ 'one', 'two', 'three' ]
32
});
33
34
t.deepEqual(typeof argv.x, 'boolean');
35
t.deepEqual(typeof argv.y, 'boolean');
36
t.deepEqual(typeof argv.z, 'boolean');
37
t.end();
38
});
39
test('boolean and alias with chainable api', function (t) {
40
var aliased = [ '-h', 'derp' ];
41
var regular = [ '--herp', 'derp' ];
42
var opts = {
43
herp: { alias: 'h', boolean: true }
44
};
45
var aliasedArgv = parse(aliased, {
46
boolean: 'herp',
47
alias: { h: 'herp' }
48
});
49
var propertyArgv = parse(regular, {
50
boolean: 'herp',
51
alias: { h: 'herp' }
52
});
53
var expected = {
54
herp: true,
55
h: true,
56
'_': [ 'derp' ]
57
};
58
59
t.same(aliasedArgv, expected);
60
t.same(propertyArgv, expected);
61
t.end();
62
});
63
64
test('boolean and alias with options hash', function (t) {
65
var aliased = [ '-h', 'derp' ];
66
var regular = [ '--herp', 'derp' ];
67
var opts = {
68
alias: { 'h': 'herp' },
69
boolean: 'herp'
70
};
71
var aliasedArgv = parse(aliased, opts);
72
var propertyArgv = parse(regular, opts);
73
var expected = {
74
herp: true,
75
h: true,
76
'_': [ 'derp' ]
77
};
78
t.same(aliasedArgv, expected);
79
t.same(propertyArgv, expected);
80
t.end();
81
});
82
83
test('boolean and alias using explicit true', function (t) {
84
var aliased = [ '-h', 'true' ];
85
var regular = [ '--herp', 'true' ];
86
var opts = {
87
alias: { h: 'herp' },
88
boolean: 'h'
89
};
90
var aliasedArgv = parse(aliased, opts);
91
var propertyArgv = parse(regular, opts);
92
var expected = {
93
herp: true,
94
h: true,
95
'_': [ ]
96
};
97
98
t.same(aliasedArgv, expected);
99
t.same(propertyArgv, expected);
100
t.end();
101
});
102
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'], {
106
boolean: 'boool'
107
});
108
109
t.same(parsed.boool, true);
110
t.same(parsed.other, 'true');
111
112
parsed = parse(['--boool', '--other=false'], {
113
boolean: 'boool'
114
});
115
116
t.same(parsed.boool, true);
117
t.same(parsed.other, 'false');
118
t.end();
119
});
120
121