UNPKG

2.15 kBJavaScriptView Raw
1/*global suite, test*/
2
3var assert = require("assert")
4 , after = require("../")
5
6test("exists", function () {
7 assert(typeof after === "function", "after is not a function")
8})
9
10test("after when called with 0 invokes", function (done) {
11 after(0, done)
12});
13
14test("after 1", function (done) {
15 var next = after(1, done)
16 next()
17})
18
19test("after 5", function (done) {
20 var next = after(5, done)
21 , i = 5
22
23 while (i--) {
24 next()
25 }
26})
27
28test("manipulate count", function (done) {
29 var next = after(1, done)
30 , i = 5
31
32 next.count = i
33 while (i--) {
34 next()
35 }
36})
37
38test("after terminates on error", function (done) {
39 var next = after(2, function(err) {
40 assert.equal(err.message, 'test');
41 done();
42 })
43 next(new Error('test'))
44 next(new Error('test2'))
45})
46
47test('gee', function(done) {
48 done = after(2, done)
49
50 function cb(err) {
51 assert.equal(err.message, 1);
52 done()
53 }
54
55 var next = after(3, cb, function(err) {
56 assert.equal(err.message, 2)
57 done()
58 });
59
60 next()
61 next(new Error(1))
62 next(new Error(2))
63})
64
65test('eee', function(done) {
66 done = after(3, done)
67
68 function cb(err) {
69 assert.equal(err.message, 1);
70 done()
71 }
72
73 var next = after(3, cb, function(err) {
74 assert.equal(err.message, 2)
75 done()
76 });
77
78 next(new Error(1))
79 next(new Error(2))
80 next(new Error(2))
81})
82
83test('gge', function(done) {
84 function cb(err) {
85 assert.equal(err.message, 1);
86 done()
87 }
88
89 var next = after(3, cb, function(err) {
90 // should not happen
91 assert.ok(false);
92 });
93
94 next()
95 next()
96 next(new Error(1))
97})
98
99test('egg', function(done) {
100 function cb(err) {
101 assert.equal(err.message, 1);
102 done()
103 }
104
105 var next = after(3, cb, function(err) {
106 // should not happen
107 assert.ok(false);
108 });
109
110 next(new Error(1))
111 next()
112 next()
113})
114
115test('throws on too many calls', function(done) {
116 var next = after(1, done);
117 next()
118 assert.throws(next, /after called too many times/);
119});
120