Skip to content

Commit f8c437e

Browse files
committed
import opts.unknown tests from mini mist
- disable unknown args return test
1 parent b553719 commit f8c437e

1 file changed

Lines changed: 80 additions & 0 deletions

File tree

‎test/unknown.js‎

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
const test = require('tape');
2+
const fn = require('../lib');
3+
4+
test('boolean and alias is not unknown', t => {
5+
const unknown = [];
6+
const unknownFn = arg => (unknown.push(arg), false);
7+
const aliased = ['-h', 'true', '--derp', 'true'];
8+
const regular = ['--herp', 'true', '-d', 'true'];
9+
const opts = {
10+
alias: { h: 'herp' },
11+
boolean: 'h',
12+
unknown: unknownFn
13+
};
14+
const aliasedArgv = fn(aliased, opts);
15+
const propertyArgv = fn(regular, opts);
16+
17+
t.same(unknown, ['--derp', '-d']);
18+
t.end();
19+
});
20+
21+
// test('flag boolean true any double hyphen argument is not unknown', t => {
22+
// const unknown = [];
23+
// const unknownFn = arg => (unknown.push(arg),false);
24+
25+
// const argv = fn(['--honk', '--tacos=good', 'cow', '-p', '55'], { boolean: true, unknown: unknownFn });
26+
// t.same(unknown, ['--tacos', 'cow', '-p']);
27+
// t.same(argv, { honk: true, _: [] });
28+
// t.end();
29+
// });
30+
31+
test('string and alias is not unknown', t => {
32+
const unknown = [];
33+
const unknownFn = arg => (unknown.push(arg), false);
34+
// const unknownFn = arg => console.log('unknown arg', arg);
35+
36+
const aliased = ['-h', 'hello', '--derp', 'goodbye'];
37+
const regular = ['--herp', 'hello', '-d', 'moon'];
38+
const opts = {
39+
alias: { h: 'herp' },
40+
string: 'h',
41+
unknown: unknownFn
42+
};
43+
const aliasedArgv = fn(aliased, opts);
44+
const propertyArgv = fn(regular, opts);
45+
46+
t.same(unknown, ['--derp', '-d']);
47+
t.end();
48+
});
49+
50+
test('default and alias is not unknown', t => {
51+
const unknown = [];
52+
const unknownFn = arg => (unknown.push(arg), false);
53+
54+
const aliased = ['-h', 'hello'];
55+
const regular = ['--herp', 'hello'];
56+
const opts = {
57+
default: { h: 'bar' },
58+
alias: { h: 'herp' },
59+
unknown: unknownFn
60+
};
61+
const aliasedArgv = fn(aliased, opts);
62+
const propertyArgv = fn(regular, opts);
63+
64+
t.same(unknown, []);
65+
t.end();
66+
unknownFn(); // exercise fn for 100% coverage
67+
});
68+
69+
// test('value following -- is not unknown', t => {
70+
// const unknown = [];
71+
// const unknownFn = arg => (unknown.push(arg),false);
72+
73+
// const aliased = [ '--bad', '--', 'good', 'arg' ];
74+
// const opts = { '--': true, unknown: unknownFn };
75+
// const argv = fn(aliased, opts);
76+
77+
// t.same(unknown, ['--bad']);
78+
// t.same(argv, { '--': ['good', 'arg'], '_': [] });
79+
// t.end();
80+
// });

0 commit comments

Comments
 (0)