|
|
|
|
|
var assert = require("assert") |
|
, after = require("../") |
|
|
|
test("exists", function () { |
|
assert(typeof after === "function", "after is not a function") |
|
}) |
|
|
|
test("after when called with 0 invokes", function (done) { |
|
after(0, done) |
|
}); |
|
|
|
test("after 1", function (done) { |
|
var next = after(1, done) |
|
next() |
|
}) |
|
|
|
test("after 5", function (done) { |
|
var next = after(5, done) |
|
, i = 5 |
|
|
|
while (i--) { |
|
next() |
|
} |
|
}) |
|
|
|
test("manipulate count", function (done) { |
|
var next = after(1, done) |
|
, i = 5 |
|
|
|
next.count = i |
|
while (i--) { |
|
next() |
|
} |
|
}) |
|
|
|
test("after terminates on error", function (done) { |
|
var next = after(2, function(err) { |
|
assert.equal(err.message, 'test'); |
|
done(); |
|
}) |
|
next(new Error('test')) |
|
next(new Error('test2')) |
|
}) |
|
|
|
test('gee', function(done) { |
|
done = after(2, done) |
|
|
|
function cb(err) { |
|
assert.equal(err.message, 1); |
|
done() |
|
} |
|
|
|
var next = after(3, cb, function(err) { |
|
assert.equal(err.message, 2) |
|
done() |
|
}); |
|
|
|
next() |
|
next(new Error(1)) |
|
next(new Error(2)) |
|
}) |
|
|
|
test('eee', function(done) { |
|
done = after(3, done) |
|
|
|
function cb(err) { |
|
assert.equal(err.message, 1); |
|
done() |
|
} |
|
|
|
var next = after(3, cb, function(err) { |
|
assert.equal(err.message, 2) |
|
done() |
|
}); |
|
|
|
next(new Error(1)) |
|
next(new Error(2)) |
|
next(new Error(2)) |
|
}) |
|
|
|
test('gge', function(done) { |
|
function cb(err) { |
|
assert.equal(err.message, 1); |
|
done() |
|
} |
|
|
|
var next = after(3, cb, function(err) { |
|
|
|
assert.ok(false); |
|
}); |
|
|
|
next() |
|
next() |
|
next(new Error(1)) |
|
}) |
|
|
|
test('egg', function(done) { |
|
function cb(err) { |
|
assert.equal(err.message, 1); |
|
done() |
|
} |
|
|
|
var next = after(3, cb, function(err) { |
|
|
|
assert.ok(false); |
|
}); |
|
|
|
next(new Error(1)) |
|
next() |
|
next() |
|
}) |
|
|
|
test('throws on too many calls', function(done) { |
|
var next = after(1, done); |
|
next() |
|
assert.throws(next, /after called too many times/); |
|
}); |
|
|
|
|