Socket
Socket
Sign inDemoInstall

express-errors-handler

Package Overview
Dependencies
60
Maintainers
4
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.4.2 to 1.4.3

13

main.js

@@ -44,5 +44,16 @@ /*eslint no-unused-vars:0*/

function getCaptureError (client) {
return function(err) {
if (err.name === fetchres.ReadTimeoutError.name) {
logger.error('event=dependencytimeout', err);
} else {
client.captureError.apply(client, arguments);
}
};
}
if (process.env.NODE_ENV === 'production') {
const client = new raven.Client(process.env.RAVEN_URL);
module.exports = client;
module.exports = Object.assign({}, client);
module.exports.captureError = getCaptureError(client);
module.exports.middleware = sendErrorProd;

@@ -49,0 +60,0 @@ module.exports.upstreamErrorHandler = getUpstreamErrorHandler(sendErrorProd);

2

package.json
{
"name": "express-errors-handler",
"version": "1.4.2",
"version": "1.4.3",
"main": "main.js",

@@ -5,0 +5,0 @@ "repository": {

@@ -47,3 +47,3 @@ 'use strict';

expect(res.status).to.equal(500);
expect(logger.error.calledWith('event=uncaughterror', error))
expect(logger.error.calledWith('event=uncaughterror', error)).to.be.true;
done();

@@ -58,3 +58,3 @@ });

expect(res.status).to.equal(504);
expect(logger.error.calledWith('event=dependencytimeout', readTimeoutError))
expect(logger.error.calledWith('event=dependencytimeout', readTimeoutError)).to.be.true;
done();

@@ -69,3 +69,3 @@ });

expect(res.status).to.equal(513);
expect(logger.error.calledWith('event=uncaughterror', badServerError))
expect(logger.error.calledWith('event=uncaughterror', badServerError)).to.be.true;
done();

@@ -80,3 +80,3 @@ });

expect(res.status).to.equal(500);
expect(logger.error.calledWith('event=uncaughterror', error))
expect(logger.error.calledWith('event=uncaughterror', error)).to.be.true;
done();

@@ -83,0 +83,0 @@ });

@@ -11,3 +11,3 @@ 'use strict';

describe('express errors handler in dev', function () {
describe('express errors handler in prod', function () {
let app;

@@ -21,5 +21,14 @@ let errorsHandler;

});
const captureErrorSpy = sinon.spy();
const captureMessageSpy = sinon.spy();
before(function () {
sinon.stub(raven.middleware, 'express', () => ravenSpy);
sinon.stub(raven, 'Client', () => {
return {
captureError: captureErrorSpy,
captureMessage: captureMessageSpy,
patchGlobal: sinon.spy()
}
});
errorsHandler = require('../main');

@@ -57,3 +66,3 @@ app = express();

expect(res.status).to.equal(500);
expect(logger.error.calledWith('event=uncaughterror', error));
expect(logger.error.calledWith('event=uncaughterror', error)).to.be.false;
expect(ravenSpy.called).to.be.true;

@@ -71,3 +80,3 @@ expect(ravenSpy.args[0].length).to.equal(4);

expect(ravenSpy.called).to.be.false;
expect(logger.error.calledWith('event=dependencytimeout', readTimeoutError))
expect(logger.error.calledWith('event=dependencytimeout', readTimeoutError)).to.be.true;
done();

@@ -83,3 +92,3 @@ });

expect(ravenSpy.called).to.be.false;
expect(logger.error.calledWith('event=uncaughterror', badServerError))
expect(logger.error.calledWith('event=uncaughterror', badServerError)).to.be.true;
done();

@@ -96,3 +105,3 @@ });

expect(ravenSpy.args[0].length).to.equal(4);
expect(logger.error.calledWith('event=uncaughterror', error))
expect(logger.error.calledWith('event=uncaughterror', error)).to.be.false;
done();

@@ -102,2 +111,19 @@ });

it('can capture errors outside of express controllers', function () {
errorsHandler.captureError(readTimeoutError);
expect(logger.error.calledWith('event=dependencytimeout', readTimeoutError)).to.be.true;
errorsHandler.captureError(badServerError);
expect(captureErrorSpy.called).to.be.true;
expect(captureErrorSpy.args[0].length).to.equal(1);
expect(captureErrorSpy.args[0][0].name).to.equal(badServerError.name);
});
it('can capture messages outside of express controllers', function () {
errorsHandler.captureMessage('random message');
expect(captureMessageSpy.called).to.be.true;
expect(captureMessageSpy.args[0].length).to.equal(1);
expect(captureMessageSpy.args[0][0]).to.equal('random message');
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc