airbrake
Version:
DEPRECATION: please use @airbrake/node instead (https://www.npmjs.com/package/@airbrake/node). A Node.js notifier for Airbrake, the leading exception reporting service.
48 lines (40 loc) • 1.19 kB
JavaScript
var semver = require('semver');
if (semver.gt(process.version, '4.0.0')) {
/* eslint-disable global-require */
var hapi = require('hapi');
var common = require('./common');
var airbrake = require(common.dir.root).createClient(common.projectId, common.key);
var assert = require('assert');
var sinon = require('sinon');
var http = require('http');
/* eslint-enable global-require */
sinon.spy(airbrake, '_onError');
var app = new hapi.Server({ debug: { request: ['error'] } });
app.connection({ port: common.port });
app.route({
method: 'GET',
path: '/uncaught',
handler: function(request, _reply) {
throw new Error('bingo');
}
});
app.register(airbrake.hapiHandler(), function(err) {
if (err) {
throw err;
}
});
app.start();
http.request({
port: common.port,
path: '/uncaught',
headers: {
'User-Agent': 'bingo'
}
}, function() {
var err = airbrake._onError.getCall(0);
assert.equal(err.args[0].url, 'http://localhost:' + common.port + '/uncaught');
assert.equal(err.args[0].ua, 'bingo');
assert.equal(airbrake._onError.callCount, 1);
process.exit();
}).end();
}