corrade-nucleus-nucleons – Blame information for rev 36

Subversion Repositories:
Rev:
Rev Author Line No. Line
36 office 1 var assert = require('assert')
2 var series = require('./')
3  
4 var a, b, c
5  
6 series([
7 function (done) {
8 a = 1
9 process.nextTick(done)
10 check('a')
11 },
12 function (done) {
13 b = 2
14 process.nextTick(done)
15 check('b')
16 },
17 function (done) {
18 c = 3
19 process.nextTick(done)
20 check('c')
21 }
22 ], function (err) {
23 assert.ifError(err)
24 assert.equal(a, 1)
25 assert.equal(b, 2)
26 assert.equal(c, 3)
27 })
28  
29 function check(x) {
30 switch (x) {
31 case 'a':
32 assert.equal(a, 1)
33 assert.equal(b, undefined)
34 assert.equal(c, undefined)
35 break
36 case 'b':
37 assert.equal(a, 1)
38 assert.equal(b, 2)
39 assert.equal(c, undefined)
40 break
41 case 'c':
42 assert.equal(a, 1)
43 assert.equal(b, 2)
44 assert.equal(c, 3)
45 break
46 }
47 }
48  
49 var context = 'hello'
50 series([function (done) {
51 assert.equal(this, context)
52 done()
53 }], context)
54  
55 var finished
56 series([], function (err) {
57 finished = true
58 })
59  
60 process.nextTick(function () {
61 if (!finished)
62 throw new Error('Failed with no functions.');
63 })
64  
65 var r, d, o
66 series([
67 function (done) {
68 r = 1
69 process.nextTick(done)
70 },
71 function (done) {
72 d = 0
73 process.nextTick(function () {
74 done(new Error('message'))
75 })
76 },
77 function (done) {
78 o = 0
79 process.nextTick(done)
80 }
81 ], function (err) {
82 assert.equal(err.message, 'message')
83 assert.equal(r, 1)
84 assert.equal(d, 0)
85 assert.equal(o, undefined)
86 })
87  
88 console.log('Array series tests pass!')