121 lines
2.5 KiB
JavaScript
121 lines
2.5 KiB
JavaScript
|
var nomnom = require("../nomnom");
|
||
|
|
||
|
function strip(str) {
|
||
|
return str.replace(/\s+/g, '');
|
||
|
}
|
||
|
|
||
|
exports.testCallback = function(test) {
|
||
|
test.expect(1);
|
||
|
|
||
|
var parser = nomnom();
|
||
|
parser.command('run').callback(function(options) {
|
||
|
test.equal(options.v, 3);
|
||
|
});
|
||
|
parser.command('other').callback(function() {
|
||
|
test.ok(false, "callback for other command shouldn't be called");
|
||
|
});
|
||
|
|
||
|
parser.parse(["run","-v", "3"]);
|
||
|
test.done();
|
||
|
}
|
||
|
|
||
|
exports.testMissingCommand = function(test) {
|
||
|
test.expect(1);
|
||
|
|
||
|
var parser = nomnom().scriptName("test");
|
||
|
|
||
|
parser.command('run');
|
||
|
|
||
|
parser.printer(function(string) {
|
||
|
test.equal(string, "test: no such command 'other'");
|
||
|
test.done();
|
||
|
});
|
||
|
|
||
|
parser.parse(["other"]);
|
||
|
}
|
||
|
|
||
|
exports.testNoCommand = function(test) {
|
||
|
test.expect(2);
|
||
|
|
||
|
var parser = nomnom();
|
||
|
|
||
|
parser.nocommand()
|
||
|
.options({
|
||
|
version: {
|
||
|
flag: true
|
||
|
}
|
||
|
})
|
||
|
.callback(function(options) {
|
||
|
test.strictEqual(options.version, true);
|
||
|
})
|
||
|
.usage("fallback usage");
|
||
|
|
||
|
parser.command('run');
|
||
|
|
||
|
var options = parser.parse(["--version"]);
|
||
|
|
||
|
test.strictEqual(options.version, true);
|
||
|
test.done();
|
||
|
}
|
||
|
|
||
|
function createParser() {
|
||
|
var parser = nomnom().scriptName("test")
|
||
|
.options({
|
||
|
debug: {
|
||
|
flag: true
|
||
|
}
|
||
|
});
|
||
|
|
||
|
parser.command('run')
|
||
|
.options({
|
||
|
file: {
|
||
|
help: 'file to run'
|
||
|
}
|
||
|
})
|
||
|
.help("run all");
|
||
|
|
||
|
parser.command('test').usage("test usage");
|
||
|
|
||
|
parser.nocommand()
|
||
|
.options({
|
||
|
verbose: {
|
||
|
flag: true
|
||
|
}
|
||
|
})
|
||
|
.help("nocommand");
|
||
|
|
||
|
return parser;
|
||
|
}
|
||
|
|
||
|
exports.testUsage = function(test) {
|
||
|
test.expect(4);
|
||
|
|
||
|
var parser = createParser();
|
||
|
parser.printer(function(string) {
|
||
|
test.equal(strip(string), "testusage");
|
||
|
});
|
||
|
parser.parse(["test", "-h"]);
|
||
|
|
||
|
parser = createParser().nocolors();
|
||
|
parser.printer(function(string) {
|
||
|
test.equal(strip(string), "Usage:testrun[options]Options:--debug--filefiletorunrunall");
|
||
|
});
|
||
|
parser.parse(["run", "-h"]);
|
||
|
|
||
|
parser = createParser().nocolors();
|
||
|
parser.printer(function(string) {
|
||
|
test.equal(strip(string), "Usage:test[command][options]commandoneof:run,testOptions:--debug--verbosenocommand");
|
||
|
});
|
||
|
parser.parse(["-h"]);
|
||
|
|
||
|
parser = createParser().nocolors();
|
||
|
parser.nocommand()
|
||
|
.usage("fallback");
|
||
|
parser.printer(function(string) {
|
||
|
test.equal(strip(string), "fallback");
|
||
|
});
|
||
|
parser.parse(["-h"]);
|
||
|
|
||
|
test.done();
|
||
|
}
|