[Service] Integrate DeviceHome and SignalingServer
[platform/framework/web/wrtjs.git] / device_home / node_modules / after / test / after-test.js
1 /*global suite, test*/
2
3 var assert = require("assert")
4     , after = require("../")
5
6 test("exists", function () {
7     assert(typeof after === "function", "after is not a function")
8 })
9
10 test("after when called with 0 invokes", function (done) {
11     after(0, done)
12 });
13
14 test("after 1", function (done) {
15     var next = after(1, done)
16     next()
17 })
18
19 test("after 5", function (done) {
20     var next = after(5, done)
21     , i = 5
22
23     while (i--) {
24         next()
25     }
26 })
27
28 test("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
38 test("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
47 test('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
65 test('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
83 test('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
99 test('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
115 test('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