92 lines
2.4 KiB
JavaScript
92 lines
2.4 KiB
JavaScript
var async = require('../lib/vasync');
|
|
|
|
/*
|
|
* tryEach tests, transliterated from mocha to tap.
|
|
*
|
|
* They are nearly identical except for some details related to vasync. For
|
|
* example, we don't support calling the callback more than once from any of
|
|
* the given functions.
|
|
*/
|
|
|
|
|
|
exports['tryEach no callback'] = function (test) {
|
|
async.tryEach([]);
|
|
test.done();
|
|
};
|
|
exports['tryEach empty'] = function (test) {
|
|
async.tryEach([], function (err, results) {
|
|
test.equals(err, null);
|
|
test.same(results, undefined);
|
|
test.done();
|
|
});
|
|
};
|
|
exports['tryEach one task, multiple results'] = function (test) {
|
|
var RESULTS = ['something', 'something2'];
|
|
async.tryEach([
|
|
function (callback) {
|
|
callback(null, RESULTS[0], RESULTS[1]);
|
|
}
|
|
], function (err, results) {
|
|
test.equals(err, null);
|
|
test.same(results, RESULTS);
|
|
test.done();
|
|
});
|
|
};
|
|
exports['tryEach one task'] = function (test) {
|
|
var RESULT = 'something';
|
|
async.tryEach([
|
|
function (callback) {
|
|
callback(null, RESULT);
|
|
}
|
|
], function (err, results) {
|
|
test.equals(err, null);
|
|
test.same(results, RESULT);
|
|
test.done();
|
|
});
|
|
};
|
|
exports['tryEach two tasks, one failing'] = function (test) {
|
|
var RESULT = 'something';
|
|
async.tryEach([
|
|
function (callback) {
|
|
callback(new Error('Failure'), {});
|
|
},
|
|
function (callback) {
|
|
callback(null, RESULT);
|
|
}
|
|
], function (err, results) {
|
|
test.equals(err, null);
|
|
test.same(results, RESULT);
|
|
test.done();
|
|
});
|
|
};
|
|
exports['tryEach two tasks, both failing'] = function (test) {
|
|
var ERROR_RESULT = new Error('Failure2');
|
|
async.tryEach([
|
|
function (callback) {
|
|
callback(new Error('Should not stop here'));
|
|
},
|
|
function (callback) {
|
|
callback(ERROR_RESULT);
|
|
}
|
|
], function (err, results) {
|
|
test.equals(err, ERROR_RESULT);
|
|
test.same(results, undefined);
|
|
test.done();
|
|
});
|
|
};
|
|
exports['tryEach two tasks, non failing'] = function (test) {
|
|
var RESULT = 'something';
|
|
async.tryEach([
|
|
function (callback) {
|
|
callback(null, RESULT);
|
|
},
|
|
function () {
|
|
test.fail('Should not been called');
|
|
}
|
|
], function (err, results) {
|
|
test.equals(err, null);
|
|
test.same(results, RESULT);
|
|
test.done();
|
|
});
|
|
};
|