Skip to content

Commit 05c495c

Browse files
committed
Add tests for unhandledRejection listeners
1 parent a328678 commit 05c495c

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

test/raven.client.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/* eslint no-shadow:0, consistent-return:0, no-console:0 */
2+
/* global Promise */
23
'use strict';
34

45
var raven = require('../'),
@@ -272,6 +273,51 @@ describe('raven.Client', function () {
272273
});
273274
});
274275

276+
describe('#install()', function () {
277+
beforeEach(function () {
278+
process.removeAllListeners('uncaughtException');
279+
process.removeAllListeners('unhandledRejection');
280+
});
281+
282+
afterEach(function () {
283+
process.removeAllListeners('uncaughtException');
284+
process.removeAllListeners('unhandledRejection');
285+
});
286+
287+
it('should not listen for unhandledRejection unless told to', function () {
288+
var listeners = process.listeners('unhandledRejection');
289+
listeners.length.should.equal(0);
290+
291+
client.install();
292+
293+
listeners = process.listeners('unhandledRejection');
294+
listeners.length.should.equal(0);
295+
});
296+
297+
it('should catch an unhandledRejection', function (done) {
298+
var listeners = process.listeners('unhandledRejection');
299+
listeners.length.should.equal(0);
300+
301+
client.install({ unhandledRejection: true }, function (sent, reason) {
302+
reason.message.should.equal('rejected!');
303+
done();
304+
});
305+
306+
listeners = process.listeners('unhandledRejection');
307+
listeners.length.should.equal(1);
308+
309+
// promises didn't fire unhandledRejection until 1.4.1
310+
if (process.version >= 'v1.4.1') {
311+
// eslint-disable-next-line no-new
312+
new Promise(function (resolve, reject) {
313+
reject(new Error('rejected!'));
314+
});
315+
} else {
316+
process.emit('unhandledRejection', new Error('rejected!'));
317+
}
318+
});
319+
});
320+
275321
describe('#patchGlobal()', function () {
276322
beforeEach(function () {
277323
// remove existing uncaughtException handlers

0 commit comments

Comments
 (0)