| /*global suite, test*/ |
| |
| 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) { |
| // should not happen |
| 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) { |
| // should not happen |
| 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/); |
| }); |
| |