From 6d574deb4ef4b89c6f20ca644a2bb88f7ac7e482 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Fri, 30 Jun 2017 14:07:41 -0500 Subject: [PATCH] Raise errors by default Disable by passing `catchErrors: true` to Robot --- index.js | 2 +- lib/robot.js | 9 ++++----- test/index.js | 2 +- test/robot.js | 6 +++++- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 1c6255f296..71e5618695 100644 --- a/index.js +++ b/index.js @@ -31,7 +31,7 @@ module.exports = (options = {}) => { debug: process.env.LOG_LEVEL === 'trace' }); const server = createServer(webhook); - const robot = createRobot({app, webhook, cache, logger}); + const robot = createRobot({app, webhook, cache, logger, catchErrors: true}); // Forward webhooks to robot webhook.on('*', event => { diff --git a/lib/robot.js b/lib/robot.js index 6f83083b40..9d68a22b58 100644 --- a/lib/robot.js +++ b/lib/robot.js @@ -9,12 +9,12 @@ const Context = require('./context'); * @property {logger} log - A logger */ class Robot { - constructor({app, cache, logger, throwErrors} = {}) { + constructor({app, cache, logger, catchErrors} = {}) { this.events = new EventEmitter(); this.app = app; this.cache = cache; this.log = wrapLogger(logger); - this.throwErrors = throwErrors; + this.catchErrors = catchErrors; } async receive(event) { @@ -66,10 +66,9 @@ class Robot { const context = new Context(event, github); return callback(context, context /* DEPRECATED: for backward compat */); } catch (err) { - if (this.throwErrors) { + this.log.error(err); + if (!this.catchErrors) { throw err; - } else { - this.log.error(err); } } } diff --git a/test/index.js b/test/index.js index cfa1ba56d5..de10b8ba12 100644 --- a/test/index.js +++ b/test/index.js @@ -6,7 +6,7 @@ describe('Robot', () => { let event; beforeEach(() => { - robot = createRobot({throwErrors: true}); + robot = createRobot(); robot.auth = () => Promise.resolve({}); event = { diff --git a/test/robot.js b/test/robot.js index a54ad277ff..51a54c0c7d 100644 --- a/test/robot.js +++ b/test/robot.js @@ -100,7 +100,11 @@ describe('Robot', function () { throw error; }); - await robot.receive(event); + try { + await robot.receive(event); + } catch (err) { + // Expected + } expect(robot.log.error).toHaveBeenCalledWith(error); });