88 lines
1.4 KiB
JavaScript
88 lines
1.4 KiB
JavaScript
var assert = require('assert')
|
|
var series = require('./')
|
|
|
|
var a, b, c
|
|
|
|
series([
|
|
function (done) {
|
|
a = 1
|
|
process.nextTick(done)
|
|
check('a')
|
|
},
|
|
function (done) {
|
|
b = 2
|
|
process.nextTick(done)
|
|
check('b')
|
|
},
|
|
function (done) {
|
|
c = 3
|
|
process.nextTick(done)
|
|
check('c')
|
|
}
|
|
], function (err) {
|
|
assert.ifError(err)
|
|
assert.equal(a, 1)
|
|
assert.equal(b, 2)
|
|
assert.equal(c, 3)
|
|
})
|
|
|
|
function check(x) {
|
|
switch (x) {
|
|
case 'a':
|
|
assert.equal(a, 1)
|
|
assert.equal(b, undefined)
|
|
assert.equal(c, undefined)
|
|
break
|
|
case 'b':
|
|
assert.equal(a, 1)
|
|
assert.equal(b, 2)
|
|
assert.equal(c, undefined)
|
|
break
|
|
case 'c':
|
|
assert.equal(a, 1)
|
|
assert.equal(b, 2)
|
|
assert.equal(c, 3)
|
|
break
|
|
}
|
|
}
|
|
|
|
var context = 'hello'
|
|
series([function (done) {
|
|
assert.equal(this, context)
|
|
done()
|
|
}], context)
|
|
|
|
var finished
|
|
series([], function (err) {
|
|
finished = true
|
|
})
|
|
|
|
process.nextTick(function () {
|
|
if (!finished)
|
|
throw new Error('Failed with no functions.');
|
|
})
|
|
|
|
var r, d, o
|
|
series([
|
|
function (done) {
|
|
r = 1
|
|
process.nextTick(done)
|
|
},
|
|
function (done) {
|
|
d = 0
|
|
process.nextTick(function () {
|
|
done(new Error('message'))
|
|
})
|
|
},
|
|
function (done) {
|
|
o = 0
|
|
process.nextTick(done)
|
|
}
|
|
], function (err) {
|
|
assert.equal(err.message, 'message')
|
|
assert.equal(r, 1)
|
|
assert.equal(d, 0)
|
|
assert.equal(o, undefined)
|
|
})
|
|
|
|
console.log('Array series tests pass!') |