var nomnom = require("../nomnom"); var parser = nomnom() .option("addr", { abbr: "a", help: "host:port address", transform: function(value) { var parts = value.split(":"); return {host: parts[0], port: Number(parts[1])}; } }) .option("string", { abbr: "s", help: "always a string", transform: function(value) { return value.toString(); } }); exports.testTransformComplexValue = function(test) { var opts = parser.parse(["-a", "localhost:1234"]); test.strictEqual(opts.addr.host, "localhost"); test.strictEqual(opts.addr.port, 1234); test.done(); }; exports.testTransformString = function(test) { var opts = parser.parse(["-s", "3"]); test.strictEqual(opts.string, "3"); test.done(); }; exports.testTransformCommand = function(test) { test.expect(1); var parser = nomnom().scriptName("test") .options({ addr: { transform: function(value) { var parts = value.split(":"); return {host: parts[0], port: Number(parts[1])}; } } }); parser.command("run") .options({ string: { transform: function(value) { return value.toString(); } } }) .callback(function(options) { test.strictEqual(options.string, "true"); }); parser.parse(["run", "--string=true"]); test.done(); };