Skip to content

Commit

Permalink
Test for #37.
Browse files Browse the repository at this point in the history
  • Loading branch information
Aaron Forsander committed Apr 26, 2012
1 parent 541bac8 commit 90ff6a1
Showing 1 changed file with 33 additions and 16 deletions.
49 changes: 33 additions & 16 deletions test/usage.js
Expand Up @@ -13,7 +13,7 @@ test('usageFail', function (t) {
r.result,
{ x : 10, z : 20, _ : [], $0 : './usage' }
);

t.same(
r.errors.join('\n').split(/\n+/),
[
Expand Down Expand Up @@ -75,20 +75,20 @@ test('checkFail', function (t) {
})
.argv;
});

t.same(
r.result,
{ x : 10, z : 20, _ : [], $0 : './usage' }
);

t.same(
r.errors.join('\n').split(/\n+/),
[
'Usage: ./usage -x NUM -y NUM',
'You forgot about -y'
]
);

t.same(r.logs, []);
t.ok(r.exit);
t.end();
Expand All @@ -98,7 +98,7 @@ test('checkCondPass', function (t) {
function checker (argv) {
return 'x' in argv && 'y' in argv;
}

var r = checkUsage(function () {
return optimist('-x 10 -y 20'.split(' '))
.usage('Usage: $0 -x NUM -y NUM')
Expand All @@ -118,25 +118,25 @@ test('checkCondFail', function (t) {
function checker (argv) {
return 'x' in argv && 'y' in argv;
}

var r = checkUsage(function () {
return optimist('-x 10 -z 20'.split(' '))
.usage('Usage: $0 -x NUM -y NUM')
.check(checker)
.argv;
});

t.same(
r.result,
{ x : 10, z : 20, _ : [], $0 : './usage' }
);

t.same(
r.errors.join('\n').split(/\n+/).join('\n'),
'Usage: ./usage -x NUM -y NUM\n'
+ 'Argument check failed: ' + checker.toString()
);

t.same(r.logs, []);
t.ok(r.exit);
t.end();
Expand Down Expand Up @@ -169,15 +169,15 @@ test('countFail', function (t) {
r.result,
{ _ : [ '1', '2' ], moo : true, $0 : './usage' }
);

t.same(
r.errors.join('\n').split(/\n+/),
[
'Usage: ./usage [x] [y] [z] {OPTIONS}',
'Not enough non-option arguments: got 2, need at least 3',
]
);

t.same(r.logs, []);
t.ok(r.exit);
t.end();
Expand All @@ -203,6 +203,23 @@ test('defaultSingles', function (t) {
t.end();
});

test('defaultAliases', function (t) {
var r = checkUsage(function () {
return optimist('')
.alias('f', 'foo')
.default('f', 5)
.argv
;
});
t.same(r.result, {
f : '5',
foo : '5',
_ : [],
$0 : './usage',
});
t.end();
});

test('defaultHash', function (t) {
var r = checkUsage(function () {
return optimist('--foo 50 --baz 70'.split(' '))
Expand Down Expand Up @@ -248,24 +265,24 @@ function checkUsage (f) {
process.exit = function (t) { exit = true };
process.env = Hash.merge(process.env, { _ : 'node' });
process.argv = [ './usage' ];

var errors = [];
var logs = [];

console._error = console.error;
console.error = function (msg) { errors.push(msg) };
console._log = console.log;
console.log = function (msg) { logs.push(msg) };

var result = f();

process.exit = process._exit;
process.env = process._env;
process.argv = process._argv;

console.error = console._error;
console.log = console._log;

return {
errors : errors,
logs : logs,
Expand Down

0 comments on commit 90ff6a1

Please sign in to comment.