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(); }