forked from lukeed/mri
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathunknown.js
More file actions
80 lines (67 loc) · 2.16 KB
/
Copy pathunknown.js
File metadata and controls
80 lines (67 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const test = require('tape');
const fn = require('../lib');
test('boolean and alias is not unknown', t => {
const unknown = [];
const unknownFn = arg => (unknown.push(arg), false);
const aliased = ['-h', 'true', '--derp', 'true'];
const regular = ['--herp', 'true', '-d', 'true'];
const opts = {
alias: { h: 'herp' },
boolean: 'h',
unknown: unknownFn
};
const aliasedArgv = fn(aliased, opts);
const propertyArgv = fn(regular, opts);
t.same(unknown, ['--derp', '-d']);
t.end();
});
// test('flag boolean true any double hyphen argument is not unknown', t => {
// const unknown = [];
// const unknownFn = arg => (unknown.push(arg),false);
// const argv = fn(['--honk', '--tacos=good', 'cow', '-p', '55'], { boolean: true, unknown: unknownFn });
// t.same(unknown, ['--tacos', 'cow', '-p']);
// t.same(argv, { honk: true, _: [] });
// t.end();
// });
test('string and alias is not unknown', t => {
const unknown = [];
const unknownFn = arg => (unknown.push(arg), false);
// const unknownFn = arg => console.log('unknown arg', arg);
const aliased = ['-h', 'hello', '--derp', 'goodbye'];
const regular = ['--herp', 'hello', '-d', 'moon'];
const opts = {
alias: { h: 'herp' },
string: 'h',
unknown: unknownFn
};
const aliasedArgv = fn(aliased, opts);
const propertyArgv = fn(regular, opts);
t.same(unknown, ['--derp', '-d']);
t.end();
});
test('default and alias is not unknown', t => {
const unknown = [];
const unknownFn = arg => (unknown.push(arg), false);
const aliased = ['-h', 'hello'];
const regular = ['--herp', 'hello'];
const opts = {
default: { h: 'bar' },
alias: { h: 'herp' },
unknown: unknownFn
};
const aliasedArgv = fn(aliased, opts);
const propertyArgv = fn(regular, opts);
t.same(unknown, []);
t.end();
unknownFn(); // exercise fn for 100% coverage
});
// test('value following -- is not unknown', t => {
// const unknown = [];
// const unknownFn = arg => (unknown.push(arg),false);
// const aliased = [ '--bad', '--', 'good', 'arg' ];
// const opts = { '--': true, unknown: unknownFn };
// const argv = fn(aliased, opts);
// t.same(unknown, ['--bad']);
// t.same(argv, { '--': ['good', 'arg'], '_': [] });
// t.end();
// });