typespeed 2.0.20 → 2.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/README.md +18 -13
  2. package/dist/core.decorator.js +1 -30
  3. package/dist/default/default-authentication.class.js +25 -0
  4. package/dist/default/express-server.class.js +11 -4
  5. package/dist/default/log-default.class.js +0 -6
  6. package/dist/factory/authentication-factory.class.js +11 -0
  7. package/dist/factory/log-factory.class.js +9 -0
  8. package/dist/route.decorator.js +92 -2
  9. package/dist/scaffold/command.js +1 -1
  10. package/dist/typespeed.d.ts +25 -3
  11. package/dist/typespeed.js +3 -1
  12. package/package.json +10 -1
  13. package/src/core.decorator.ts +1 -29
  14. package/src/default/default-authentication.class.ts +10 -0
  15. package/src/default/express-server.class.ts +12 -5
  16. package/src/default/log-default.class.ts +0 -10
  17. package/src/factory/authentication-factory.class.ts +9 -0
  18. package/src/factory/log-factory.class.ts +9 -2
  19. package/src/route.decorator.ts +91 -3
  20. package/src/scaffold/command.ts +1 -1
  21. package/src/typespeed.d.ts +25 -3
  22. package/src/typespeed.ts +1 -0
  23. package/test/node_modules/.package-lock.json +65 -101
  24. package/test/node_modules/@types/body-parser/LICENSE +21 -0
  25. package/test/node_modules/@types/body-parser/README.md +16 -0
  26. package/test/node_modules/@types/body-parser/index.d.ts +107 -0
  27. package/test/node_modules/@types/body-parser/package.json +58 -0
  28. package/test/node_modules/@types/connect/LICENSE +21 -0
  29. package/test/node_modules/@types/connect/README.md +16 -0
  30. package/test/node_modules/@types/connect/index.d.ts +93 -0
  31. package/test/node_modules/@types/connect/package.json +32 -0
  32. package/test/node_modules/@types/express/LICENSE +21 -0
  33. package/test/node_modules/@types/express/README.md +16 -0
  34. package/test/node_modules/@types/express/index.d.ts +136 -0
  35. package/test/node_modules/@types/express/package.json +45 -0
  36. package/test/node_modules/@types/express-serve-static-core/LICENSE +21 -0
  37. package/test/node_modules/@types/express-serve-static-core/README.md +16 -0
  38. package/test/node_modules/@types/express-serve-static-core/index.d.ts +1281 -0
  39. package/test/node_modules/@types/express-serve-static-core/package.json +55 -0
  40. package/test/node_modules/@types/mime/LICENSE +21 -0
  41. package/test/node_modules/@types/mime/Mime.d.ts +10 -0
  42. package/test/node_modules/@types/mime/README.md +16 -0
  43. package/test/node_modules/@types/mime/index.d.ts +35 -0
  44. package/test/node_modules/@types/mime/lite.d.ts +7 -0
  45. package/test/node_modules/@types/mime/package.json +29 -0
  46. package/test/node_modules/@types/qs/LICENSE +21 -0
  47. package/test/node_modules/@types/qs/README.md +16 -0
  48. package/test/node_modules/@types/qs/index.d.ts +62 -0
  49. package/test/node_modules/@types/qs/package.json +65 -0
  50. package/test/node_modules/@types/range-parser/LICENSE +21 -0
  51. package/test/node_modules/@types/range-parser/README.md +55 -0
  52. package/test/node_modules/@types/range-parser/index.d.ts +35 -0
  53. package/test/node_modules/@types/range-parser/package.json +25 -0
  54. package/test/node_modules/@types/send/LICENSE +21 -0
  55. package/test/node_modules/@types/send/README.md +16 -0
  56. package/test/node_modules/@types/send/index.d.ts +231 -0
  57. package/test/node_modules/@types/send/package.json +33 -0
  58. package/test/node_modules/@types/serve-static/LICENSE +21 -0
  59. package/test/node_modules/@types/serve-static/README.md +16 -0
  60. package/test/node_modules/@types/serve-static/index.d.ts +113 -0
  61. package/test/node_modules/@types/serve-static/package.json +38 -0
  62. package/test/src/config.json +5 -0
  63. package/test/src/custom-log.class.ts +6 -0
  64. package/test/src/jwt-authentication.class.ts +29 -0
  65. package/test/src/test-request.class.ts +36 -0
  66. package/test/node_modules/@acuminous/bitsyntax/.github/workflows/node-js-ci.yml +0 -17
  67. package/test/node_modules/@acuminous/bitsyntax/.github/workflows/node-js-publish.yml +0 -30
  68. package/test/node_modules/@acuminous/bitsyntax/LICENSE +0 -6
  69. package/test/node_modules/@acuminous/bitsyntax/LICENSE-MIT +0 -21
  70. package/test/node_modules/@acuminous/bitsyntax/Makefile +0 -15
  71. package/test/node_modules/@acuminous/bitsyntax/README.md +0 -308
  72. package/test/node_modules/@acuminous/bitsyntax/index.js +0 -10
  73. package/test/node_modules/@acuminous/bitsyntax/lib/compile.js +0 -303
  74. package/test/node_modules/@acuminous/bitsyntax/lib/constructor.js +0 -142
  75. package/test/node_modules/@acuminous/bitsyntax/lib/grammar.pegjs +0 -67
  76. package/test/node_modules/@acuminous/bitsyntax/lib/interp.js +0 -232
  77. package/test/node_modules/@acuminous/bitsyntax/lib/parse.js +0 -32
  78. package/test/node_modules/@acuminous/bitsyntax/lib/parser.js +0 -1173
  79. package/test/node_modules/@acuminous/bitsyntax/lib/pattern.js +0 -119
  80. package/test/node_modules/@acuminous/bitsyntax/package.json +0 -36
  81. package/test/node_modules/@acuminous/bitsyntax/test/consing.test.js +0 -50
  82. package/test/node_modules/@acuminous/bitsyntax/test/matching.test.js +0 -193
  83. package/test/node_modules/amqplib/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  84. package/test/node_modules/amqplib/.github/workflows/test.yml +0 -38
  85. package/test/node_modules/amqplib/CHANGELOG.md +0 -430
  86. package/test/node_modules/amqplib/LICENSE +0 -6
  87. package/test/node_modules/amqplib/LICENSE-MIT +0 -21
  88. package/test/node_modules/amqplib/Makefile +0 -47
  89. package/test/node_modules/amqplib/README.md +0 -157
  90. package/test/node_modules/amqplib/bin/generate-defs.js +0 -722
  91. package/test/node_modules/amqplib/callback_api.js +0 -22
  92. package/test/node_modules/amqplib/channel_api.js +0 -16
  93. package/test/node_modules/amqplib/examples/headers.js +0 -42
  94. package/test/node_modules/amqplib/examples/receive_generator.js +0 -39
  95. package/test/node_modules/amqplib/examples/send_generators.js +0 -42
  96. package/test/node_modules/amqplib/examples/ssl.js +0 -64
  97. package/test/node_modules/amqplib/examples/tutorials/README.md +0 -93
  98. package/test/node_modules/amqplib/examples/tutorials/callback_api/emit_log.js +0 -28
  99. package/test/node_modules/amqplib/examples/tutorials/callback_api/emit_log_direct.js +0 -30
  100. package/test/node_modules/amqplib/examples/tutorials/callback_api/emit_log_topic.js +0 -27
  101. package/test/node_modules/amqplib/examples/tutorials/callback_api/new_task.js +0 -27
  102. package/test/node_modules/amqplib/examples/tutorials/callback_api/receive.js +0 -30
  103. package/test/node_modules/amqplib/examples/tutorials/callback_api/receive_logs.js +0 -36
  104. package/test/node_modules/amqplib/examples/tutorials/callback_api/receive_logs_direct.js +0 -56
  105. package/test/node_modules/amqplib/examples/tutorials/callback_api/receive_logs_topic.js +0 -55
  106. package/test/node_modules/amqplib/examples/tutorials/callback_api/rpc_client.js +0 -49
  107. package/test/node_modules/amqplib/examples/tutorials/callback_api/rpc_server.js +0 -45
  108. package/test/node_modules/amqplib/examples/tutorials/callback_api/send.js +0 -29
  109. package/test/node_modules/amqplib/examples/tutorials/callback_api/worker.js +0 -35
  110. package/test/node_modules/amqplib/examples/tutorials/emit_log.js +0 -19
  111. package/test/node_modules/amqplib/examples/tutorials/emit_log_direct.js +0 -20
  112. package/test/node_modules/amqplib/examples/tutorials/emit_log_topic.js +0 -19
  113. package/test/node_modules/amqplib/examples/tutorials/new_task.js +0 -18
  114. package/test/node_modules/amqplib/examples/tutorials/package.json +0 -16
  115. package/test/node_modules/amqplib/examples/tutorials/receive.js +0 -21
  116. package/test/node_modules/amqplib/examples/tutorials/receive_logs.js +0 -28
  117. package/test/node_modules/amqplib/examples/tutorials/receive_logs_direct.js +0 -44
  118. package/test/node_modules/amqplib/examples/tutorials/receive_logs_topic.js +0 -43
  119. package/test/node_modules/amqplib/examples/tutorials/rpc_client.js +0 -52
  120. package/test/node_modules/amqplib/examples/tutorials/rpc_server.js +0 -39
  121. package/test/node_modules/amqplib/examples/tutorials/send.js +0 -23
  122. package/test/node_modules/amqplib/examples/tutorials/worker.js +0 -28
  123. package/test/node_modules/amqplib/examples/waitForConfirms.js +0 -22
  124. package/test/node_modules/amqplib/lib/api_args.js +0 -314
  125. package/test/node_modules/amqplib/lib/bitset.js +0 -130
  126. package/test/node_modules/amqplib/lib/callback_model.js +0 -327
  127. package/test/node_modules/amqplib/lib/channel.js +0 -499
  128. package/test/node_modules/amqplib/lib/channel_model.js +0 -302
  129. package/test/node_modules/amqplib/lib/codec.js +0 -321
  130. package/test/node_modules/amqplib/lib/connect.js +0 -189
  131. package/test/node_modules/amqplib/lib/connection.js +0 -663
  132. package/test/node_modules/amqplib/lib/credentials.js +0 -42
  133. package/test/node_modules/amqplib/lib/defs.js +0 -4966
  134. package/test/node_modules/amqplib/lib/error.js +0 -24
  135. package/test/node_modules/amqplib/lib/format.js +0 -40
  136. package/test/node_modules/amqplib/lib/frame.js +0 -113
  137. package/test/node_modules/amqplib/lib/heartbeat.js +0 -89
  138. package/test/node_modules/amqplib/lib/mux.js +0 -129
  139. package/test/node_modules/amqplib/package.json +0 -37
  140. package/test/node_modules/amqplib/test/bitset.js +0 -69
  141. package/test/node_modules/amqplib/test/callback_api.js +0 -312
  142. package/test/node_modules/amqplib/test/channel.js +0 -621
  143. package/test/node_modules/amqplib/test/channel_api.js +0 -596
  144. package/test/node_modules/amqplib/test/codec.js +0 -237
  145. package/test/node_modules/amqplib/test/connect.js +0 -197
  146. package/test/node_modules/amqplib/test/connection.js +0 -390
  147. package/test/node_modules/amqplib/test/data.js +0 -254
  148. package/test/node_modules/amqplib/test/frame.js +0 -198
  149. package/test/node_modules/amqplib/test/mux.js +0 -204
  150. package/test/node_modules/amqplib/test/util.js +0 -219
  151. package/test/node_modules/buffer-more-ints/.travis.yml +0 -6
  152. package/test/node_modules/buffer-more-ints/LICENSE +0 -19
  153. package/test/node_modules/buffer-more-ints/README.md +0 -69
  154. package/test/node_modules/buffer-more-ints/buffer-more-ints-tests.js +0 -183
  155. package/test/node_modules/buffer-more-ints/buffer-more-ints.js +0 -432
  156. package/test/node_modules/buffer-more-ints/package.json +0 -19
  157. package/test/node_modules/buffer-more-ints/polyfill.js +0 -71
  158. package/test/node_modules/core-util-is/LICENSE +0 -19
  159. package/test/node_modules/core-util-is/README.md +0 -3
  160. package/test/node_modules/core-util-is/lib/util.js +0 -107
  161. package/test/node_modules/core-util-is/package.json +0 -38
  162. package/test/node_modules/debug/LICENSE +0 -20
  163. package/test/node_modules/debug/README.md +0 -481
  164. package/test/node_modules/debug/package.json +0 -59
  165. package/test/node_modules/debug/src/browser.js +0 -269
  166. package/test/node_modules/debug/src/common.js +0 -274
  167. package/test/node_modules/debug/src/index.js +0 -10
  168. package/test/node_modules/debug/src/node.js +0 -263
  169. package/test/node_modules/inherits/LICENSE +0 -16
  170. package/test/node_modules/inherits/README.md +0 -42
  171. package/test/node_modules/inherits/inherits.js +0 -9
  172. package/test/node_modules/inherits/inherits_browser.js +0 -27
  173. package/test/node_modules/inherits/package.json +0 -29
  174. package/test/node_modules/isarray/README.md +0 -54
  175. package/test/node_modules/isarray/build/build.js +0 -209
  176. package/test/node_modules/isarray/component.json +0 -19
  177. package/test/node_modules/isarray/index.js +0 -3
  178. package/test/node_modules/isarray/package.json +0 -25
  179. package/test/node_modules/ms/index.js +0 -162
  180. package/test/node_modules/ms/license.md +0 -21
  181. package/test/node_modules/ms/package.json +0 -37
  182. package/test/node_modules/ms/readme.md +0 -60
  183. package/test/node_modules/querystringify/LICENSE +0 -22
  184. package/test/node_modules/querystringify/README.md +0 -61
  185. package/test/node_modules/querystringify/index.js +0 -118
  186. package/test/node_modules/querystringify/package.json +0 -38
  187. package/test/node_modules/readable-stream/LICENSE +0 -18
  188. package/test/node_modules/readable-stream/README.md +0 -15
  189. package/test/node_modules/readable-stream/duplex.js +0 -1
  190. package/test/node_modules/readable-stream/float.patch +0 -923
  191. package/test/node_modules/readable-stream/lib/_stream_duplex.js +0 -89
  192. package/test/node_modules/readable-stream/lib/_stream_passthrough.js +0 -46
  193. package/test/node_modules/readable-stream/lib/_stream_readable.js +0 -951
  194. package/test/node_modules/readable-stream/lib/_stream_transform.js +0 -209
  195. package/test/node_modules/readable-stream/lib/_stream_writable.js +0 -477
  196. package/test/node_modules/readable-stream/package.json +0 -32
  197. package/test/node_modules/readable-stream/passthrough.js +0 -1
  198. package/test/node_modules/readable-stream/readable.js +0 -10
  199. package/test/node_modules/readable-stream/transform.js +0 -1
  200. package/test/node_modules/readable-stream/writable.js +0 -1
  201. package/test/node_modules/requires-port/.travis.yml +0 -19
  202. package/test/node_modules/requires-port/LICENSE +0 -22
  203. package/test/node_modules/requires-port/README.md +0 -47
  204. package/test/node_modules/requires-port/index.js +0 -38
  205. package/test/node_modules/requires-port/package.json +0 -47
  206. package/test/node_modules/requires-port/test.js +0 -98
  207. package/test/node_modules/safe-buffer/LICENSE +0 -21
  208. package/test/node_modules/safe-buffer/README.md +0 -584
  209. package/test/node_modules/safe-buffer/index.d.ts +0 -187
  210. package/test/node_modules/safe-buffer/index.js +0 -62
  211. package/test/node_modules/safe-buffer/package.json +0 -37
  212. package/test/node_modules/string_decoder/LICENSE +0 -20
  213. package/test/node_modules/string_decoder/README.md +0 -7
  214. package/test/node_modules/string_decoder/index.js +0 -221
  215. package/test/node_modules/string_decoder/package.json +0 -25
  216. package/test/node_modules/url-parse/LICENSE +0 -22
  217. package/test/node_modules/url-parse/README.md +0 -153
  218. package/test/node_modules/url-parse/dist/url-parse.js +0 -755
  219. package/test/node_modules/url-parse/dist/url-parse.min.js +0 -1
  220. package/test/node_modules/url-parse/dist/url-parse.min.js.map +0 -1
  221. package/test/node_modules/url-parse/index.js +0 -589
  222. package/test/node_modules/url-parse/package.json +0 -49
@@ -1,312 +0,0 @@
1
- 'use strict';
2
-
3
- var assert = require('assert');
4
- var crypto = require('crypto');
5
- var api = require('../callback_api');
6
- var util = require('./util');
7
- var schedule = util.schedule;
8
- var randomString = util.randomString;
9
- var kCallback = util.kCallback;
10
- var domain = require('domain');
11
-
12
- var URL = process.env.URL || 'amqp://localhost';
13
-
14
- function connect(cb) {
15
- api.connect(URL, {}, cb);
16
- }
17
-
18
- // Construct a node-style callback from a `done` function
19
- function doneCallback(done) {
20
- return function(err, _) {
21
- if (err == null) done();
22
- else done(err);
23
- };
24
- }
25
-
26
- function ignore() {}
27
-
28
- function twice(done) {
29
- var first = function(err) {
30
- if (err == undefined) second = done;
31
- else second = ignore, done(err);
32
- };
33
- var second = function(err) {
34
- if (err == undefined) first = done;
35
- else first = ignore, done(err);
36
- };
37
- return {first: function(err) { first(err); },
38
- second: function(err) { second(err); }};
39
- }
40
-
41
- // Adapt 'done' to a callback that's expected to fail
42
- function failCallback(done) {
43
- return function(err, _) {
44
- if (err == null) done(new Error('Expected failure, got ' + val));
45
- else done();
46
- };
47
- }
48
-
49
- function waitForMessages(ch, q, k) {
50
- ch.checkQueue(q, function(e, ok) {
51
- if (e != null) return k(e);
52
- else if (ok.messageCount > 0) return k(null, ok);
53
- else schedule(waitForMessages.bind(null, ch, q, k));
54
- });
55
- }
56
-
57
-
58
- suite('connect', function() {
59
-
60
- test('at all', function(done) {
61
- connect(doneCallback(done));
62
- });
63
-
64
- });
65
-
66
- function channel_test_fn(method) {
67
- return function(name, chfun) {
68
- test(name, function(done) {
69
- connect(kCallback(function(c) {
70
- c[method](kCallback(function(ch) {
71
- chfun(ch, done);
72
- }, done));
73
- }, done));
74
- });
75
- };
76
- }
77
- var channel_test = channel_test_fn('createChannel');
78
- var confirm_channel_test = channel_test_fn('createConfirmChannel');
79
-
80
- suite('channel open', function() {
81
-
82
- channel_test('at all', function(ch, done) {
83
- done();
84
- });
85
-
86
- channel_test('open and close', function(ch, done) {
87
- ch.close(doneCallback(done));
88
- });
89
-
90
- });
91
-
92
- suite('assert, check, delete', function() {
93
-
94
- channel_test('assert, check, delete queue', function(ch, done) {
95
- ch.assertQueue('test.cb.queue', {}, kCallback(function(q) {
96
- ch.checkQueue('test.cb.queue', kCallback(function(ok) {
97
- ch.deleteQueue('test.cb.queue', {}, doneCallback(done));
98
- }, done));
99
- }, done));
100
- });
101
-
102
- channel_test('assert, check, delete exchange', function(ch, done) {
103
- ch.assertExchange(
104
- 'test.cb.exchange', 'topic', {}, kCallback(function(ex) {
105
- ch.checkExchange('test.cb.exchange', kCallback(function(ok) {
106
- ch.deleteExchange('test.cb.exchange', {}, doneCallback(done));
107
- }, done));
108
- }, done));
109
- });
110
-
111
- channel_test('fail on check non-queue', function(ch, done) {
112
- var both = twice(done);
113
- ch.on('error', failCallback(both.first));
114
- ch.checkQueue('test.cb.nothere', failCallback(both.second));
115
- });
116
-
117
- channel_test('fail on check non-exchange', function(ch, done) {
118
- var both = twice(done);
119
- ch.on('error', failCallback(both.first));
120
- ch.checkExchange('test.cb.nothere', failCallback(both.second));
121
- });
122
-
123
- });
124
-
125
- suite('bindings', function() {
126
-
127
- channel_test('bind queue', function(ch, done) {
128
- ch.assertQueue('test.cb.bindq', {}, kCallback(function(q) {
129
- ch.assertExchange(
130
- 'test.cb.bindex', 'fanout', {}, kCallback(function(ex) {
131
- ch.bindQueue(q.queue, ex.exchange, '', {},
132
- doneCallback(done));
133
- }, done));
134
- }, done));
135
- });
136
-
137
- channel_test('bind exchange', function(ch, done) {
138
- ch.assertExchange(
139
- 'test.cb.bindex1', 'fanout', {}, kCallback(function(ex1) {
140
- ch.assertExchange(
141
- 'test.cb.bindex2', 'fanout', {}, kCallback(function(ex2) {
142
- ch.bindExchange(ex1.exchange,
143
- ex2.exchange, '', {},
144
- doneCallback(done));
145
- }, done));
146
- }, done));
147
- });
148
-
149
- });
150
-
151
- suite('sending messages', function() {
152
-
153
- channel_test('send to queue and consume noAck', function(ch, done) {
154
- var msg = randomString();
155
- ch.assertQueue('', {exclusive: true}, function(e, q) {
156
- if (e !== null) return done(e);
157
- ch.consume(q.queue, function(m) {
158
- if (m.content.toString() == msg) done();
159
- else done(new Error("message content doesn't match:" +
160
- msg + " =/= " + m.content.toString()));
161
- }, {noAck: true, exclusive: true});
162
- ch.sendToQueue(q.queue, Buffer.from(msg));
163
- });
164
- });
165
-
166
- channel_test('send to queue and consume ack', function(ch, done) {
167
- var msg = randomString();
168
- ch.assertQueue('', {exclusive: true}, function(e, q) {
169
- if (e !== null) return done(e);
170
- ch.consume(q.queue, function(m) {
171
- if (m.content.toString() == msg) {
172
- ch.ack(m);
173
- done();
174
- }
175
- else done(new Error("message content doesn't match:" +
176
- msg + " =/= " + m.content.toString()));
177
- }, {noAck: false, exclusive: true});
178
- ch.sendToQueue(q.queue, Buffer.from(msg));
179
- });
180
- });
181
-
182
- channel_test('send to and get from queue', function(ch, done) {
183
- ch.assertQueue('', {exclusive: true}, function(e, q) {
184
- if (e != null) return done(e);
185
- var msg = randomString();
186
- ch.sendToQueue(q.queue, Buffer.from(msg));
187
- waitForMessages(ch, q.queue, function(e, _) {
188
- if (e != null) return done(e);
189
- ch.get(q.queue, {noAck: true}, function(e, m) {
190
- if (e != null)
191
- return done(e);
192
- else if (!m)
193
- return done(new Error('Empty (false) not expected'));
194
- else if (m.content.toString() == msg)
195
- return done();
196
- else
197
- return done(
198
- new Error('Messages do not match: ' +
199
- msg + ' =/= ' + m.content.toString()));
200
- });
201
- });
202
- });
203
- });
204
-
205
- });
206
-
207
- suite('ConfirmChannel', function() {
208
-
209
- confirm_channel_test('Receive confirmation', function(ch, done) {
210
- // An unroutable message, on the basis that you're not allowed a
211
- // queue with an empty name, and you can't make bindings to the
212
- // default exchange. Tricky eh?
213
- ch.publish('', '', Buffer.from('foo'), {}, done);
214
- });
215
-
216
- confirm_channel_test('Wait for confirms', function(ch, done) {
217
- for (var i=0; i < 1000; i++) {
218
- ch.publish('', '', Buffer.from('foo'), {});
219
- }
220
- ch.waitForConfirms(done);
221
- });
222
-
223
- });
224
-
225
- suite("Error handling", function() {
226
-
227
- /*
228
- I don't like having to do this, but there appears to be something
229
- broken about domains in Node.JS v0.8 and mocha. Apparently it has to
230
- do with how mocha and domains hook into error propogation:
231
- https://github.com/visionmedia/mocha/issues/513 (summary: domains in
232
- Node.JS v0.8 don't prevent uncaughtException from firing, and that's
233
- what mocha uses to detect .. an uncaught exception).
234
-
235
- Using domains with amqplib *does* work in practice in Node.JS v0.8:
236
- that is, it's possible to throw an exception in a callback and deal
237
- with it in the active domain, and thereby avoid it crashing the
238
- program.
239
- */
240
- if (util.versionGreaterThan(process.versions.node, '0.8')) {
241
- test('Throw error in connection open callback', function(done) {
242
- var dom = domain.createDomain();
243
- dom.on('error', failCallback(done));
244
- connect(dom.bind(function(err, conn) {
245
- throw new Error('Spurious connection open callback error');
246
- }));
247
- });
248
- }
249
-
250
- // TODO: refactor {error_test, channel_test}
251
- function error_test(name, fun) {
252
- test(name, function(done) {
253
- var dom = domain.createDomain();
254
- dom.run(function() {
255
- connect(kCallback(function(c) {
256
- // Seems like there were some unironed wrinkles in 0.8's
257
- // implementation of domains; explicitly adding the connection
258
- // to the domain makes sure any exception thrown in the course
259
- // of processing frames is handled by the domain. For other
260
- // versions of Node.JS, this ends up being belt-and-braces.
261
- dom.add(c);
262
- c.createChannel(kCallback(function(ch) {
263
- fun(ch, done, dom);
264
- }, done));
265
- }, done));
266
- });
267
- });
268
- }
269
-
270
- error_test('Channel open callback throws an error', function(ch, done, dom) {
271
- dom.on('error', failCallback(done));
272
- throw new Error('Error in open callback');
273
- });
274
-
275
- error_test('RPC callback throws error', function(ch, done, dom) {
276
- dom.on('error', failCallback(done));
277
- ch.prefetch(0, false, function(err, ok) {
278
- throw new Error('Spurious callback error');
279
- });
280
- });
281
-
282
- error_test('Get callback throws error', function(ch, done, dom) {
283
- dom.on('error', failCallback(done));
284
- ch.assertQueue('test.cb.get-with-error', {}, function(err, ok) {
285
- ch.get('test.cb.get-with-error', {noAck: true}, function() {
286
- throw new Error('Spurious callback error');
287
- });
288
- });
289
- });
290
-
291
- error_test('Consume callback throws error', function(ch, done, dom) {
292
- dom.on('error', failCallback(done));
293
- ch.assertQueue('test.cb.consume-with-error', {}, function(err, ok) {
294
- ch.consume('test.cb.consume-with-error', ignore, {noAck: true}, function() {
295
- throw new Error('Spurious callback error');
296
- });
297
- });
298
- });
299
-
300
- error_test('Get from non-queue invokes error k', function(ch, done, dom) {
301
- var both = twice(failCallback(done));
302
- dom.on('error', both.first);
303
- ch.get('', {}, both.second);
304
- });
305
-
306
- error_test('Consume from non-queue invokes error k', function(ch, done, dom) {
307
- var both = twice(failCallback(done));
308
- dom.on('error', both.first);
309
- ch.consume('', both.second);
310
- });
311
-
312
- });