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
| var nomnom = require("../nomnom");
|
| var opts = {
| debug: {
| flag: true
| },
| verbose: {
| flag: true,
| default: true
| },
| list1: {
| list: true
| },
| list2: {
| list: true
| },
| list3: {
| position: 1,
| list: true
| },
| num1: {
| type: "string"
| },
| def1: {
| default: "val1"
| },
| def2: {
| default: "val1"
| }
| }
|
| var parser = nomnom().options(opts);
|
| exports.testFlag = function(test) {
| var options = parser.parse(["--debug", "pos0", "--no-verbose"]);
|
| test.strictEqual(options.debug, true);
| test.strictEqual(options.verbose, false);
| test.equal(options[0], "pos0");
| test.equal(options._[0], "pos0");
| test.done();
| }
|
| exports.testList = function(test) {
| var options = parser.parse(["pos0", "pos1", "--list1=val0", "--list2", "val1",
| "--list2", "val2", "pos2"]);
|
| test.deepEqual(options.list1, ["val0"]);
| test.deepEqual(options.list2, ["val1", "val2"]);
| test.deepEqual(options.list3, ["pos1", "pos2"]);
| test.done();
| }
|
| exports.testDefault = function(test) {
| var options = parser.parse(["--def2", "val2", "--def3", "val3"]);
|
| test.strictEqual(options.def1, "val1");
| test.strictEqual(options.def2, "val2");
| test.strictEqual(options.def3, "val3");
| test.done();
| }
|
| exports.testTypes = function(test) {
| var options = parser.parseArgs(["", "-x", "3.14", "-w", "true", "-q", "120",
| "--num1", "4"]);
|
| test.strictEqual(options[0], "");
| test.strictEqual(options.x, 3.14);
| test.strictEqual(options.w, true);
| test.strictEqual(options.q, 120);
| test.strictEqual(options.num1, "4");
| test.done();
| }
|
|