76 lines
1.6 KiB
JavaScript
76 lines
1.6 KiB
JavaScript
|
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();
|
||
|
}
|
||
|
|
||
|
|