wzp
2021-05-13 7d694a9113118daec5be7ac224dab46a3b20f106
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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();
    });
};