First commit
This commit is contained in:
108
node_modules/vasync/tests/whilst.js
generated
vendored
Normal file
108
node_modules/vasync/tests/whilst.js
generated
vendored
Normal file
@ -0,0 +1,108 @@
|
||||
/*
|
||||
* Tests the "whilst" function
|
||||
*/
|
||||
|
||||
var mod_util = require('util');
|
||||
|
||||
var mod_tap = require('tap');
|
||||
var mod_vasync = require('..');
|
||||
|
||||
mod_tap.test('basic whilst', function (test) {
|
||||
var n = 0;
|
||||
|
||||
mod_vasync.whilst(
|
||||
function condition() {
|
||||
return (n < 5);
|
||||
},
|
||||
function body(cb) {
|
||||
n++;
|
||||
cb(null, n);
|
||||
},
|
||||
function done(err, arg) {
|
||||
test.ok(!err, 'error unset');
|
||||
test.equal(n, 5, 'n == 5');
|
||||
test.equal(n, arg, 'n == arg');
|
||||
test.end();
|
||||
});
|
||||
});
|
||||
|
||||
mod_tap.test('whilst return object', function (test) {
|
||||
var n = 0;
|
||||
|
||||
var w = mod_vasync.whilst(
|
||||
function condition() {
|
||||
return (n < 5);
|
||||
},
|
||||
function body(cb) {
|
||||
n++;
|
||||
|
||||
test.equal(n, w.iterations, 'n == w.iterations: ' + n);
|
||||
|
||||
cb(null, n, 'foo');
|
||||
},
|
||||
function done(err, arg1, arg2, arg3) {
|
||||
test.ok(!err, 'error unset');
|
||||
test.equal(w.iterations, 5, 'whilst had 5 iterations');
|
||||
test.equal(w.finished, true, 'whilst has finished');
|
||||
test.equal(arg1, n, 'whilst arg1 == n');
|
||||
test.equal(arg2, 'foo', 'whilst arg2 == "foo"');
|
||||
test.equal(arg3, undefined, 'whilst arg3 == undefined');
|
||||
test.end();
|
||||
});
|
||||
|
||||
test.equal(typeof (w), 'object', 'whilst returns an object');
|
||||
test.equal(w.finished, false, 'whilst is not finished');
|
||||
test.equal(w.iterations, 0, 'whilst has not started yet');
|
||||
});
|
||||
|
||||
mod_tap.test('whilst false condition', function (test) {
|
||||
mod_vasync.whilst(
|
||||
function condition() {
|
||||
return (false);
|
||||
},
|
||||
function body(cb) {
|
||||
cb();
|
||||
},
|
||||
function done(err, arg) {
|
||||
test.ok(!err, 'error is unset');
|
||||
test.ok(!arg, 'arg is unset');
|
||||
test.end();
|
||||
});
|
||||
});
|
||||
|
||||
mod_tap.test('whilst error', function (test) {
|
||||
var n = 0;
|
||||
|
||||
var w = mod_vasync.whilst(
|
||||
function condition() {
|
||||
return (true);
|
||||
},
|
||||
function body(cb) {
|
||||
n++;
|
||||
|
||||
if (n > 5) {
|
||||
cb(new Error('n > 5'), 'bar');
|
||||
} else {
|
||||
cb(null, 'foo');
|
||||
}
|
||||
},
|
||||
function done(err, arg) {
|
||||
test.ok(err, 'error is set');
|
||||
test.equal(err.message, 'n > 5');
|
||||
test.equal(arg, 'bar');
|
||||
|
||||
test.equal(w.finished, true, 'whilst is finished');
|
||||
|
||||
/*
|
||||
* Iterations is bumped after the test condition is run and
|
||||
* before the iteration function is run. Because the condition
|
||||
* in this example is inside the iteration function (the test
|
||||
* condition always returns true), the iteration count will be
|
||||
* 1 higher than expected, since it will fail when (n > 5), or
|
||||
* when iterations is 6.
|
||||
*/
|
||||
test.equal(w.iterations, 6, 'whilst had 6 iterations');
|
||||
|
||||
test.end();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user