-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
71 lines (54 loc) · 1.55 KB
/
test.js
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
var map = require('./');
describe('serial', function(){
it('creates a new array by iterating the array with given async function', function(done){
var range = [3,1,4];
map(fn, range, function(error, seq){
if(error){
throw error;
}
expect(range[0]).to.equal(3);
expect(range[1]).to.equal(1);
expect(range[2]).to.equal(4);
expect(seq[0]).to.equal(9);
expect(seq[1]).to.equal(1);
expect(seq[2]).to.equal(16);
done();
});
function fn(el,callback){ callback(undefined, el*el); }
});
it('stops iteration when an error is returned', function(done){
map(fn, [3, 1, 4], function(error, list){
expect(error).to.exist;
done();
});
function fn (el,callback){
expect(el).to.equal(3);
callback(new Error('foobar'), 9);
}
});
});
describe('parallel', function(){
it('creates a new array by itereating the given async function paralelly ', function(done){
map.parallel(fn, [3, 1, 4, 1], function (error, list) {
if (error) return done(error);
expect(list).to.deep.equal([9, 1, 16, 1]);
done();
});
var i = 0;
function fn(el,callback){
setTimeout(function () {
callback(undefined, el*el);
}, (4 - i) * 200);
}
});
it('stops iteration when an error is returned', function(done){
map(fn, [3, 1, 4], function(error, list){
expect(error).to.exist;
done();
});
function fn (el,callback){
expect(el).to.equal(3);
callback(new Error('foobar'), 9);
}
});
});