2021-12-03 17:58:48 +01:00

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();
});
};