From e9964cb7f88bb054477fcb410f55624679b7141e Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Wed, 9 Aug 2017 15:03:40 -0500 Subject: [PATCH] Add test for event serializer and fix cause of error --- index.js | 12 ++---------- lib/serializers.js | 16 ++++++++++++++++ test/serializers.js | 27 +++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 10 deletions(-) create mode 100644 lib/serializers.js create mode 100644 test/serializers.js diff --git a/index.js b/index.js index 9bad82ff..d2506983 100644 --- a/index.js +++ b/index.js @@ -8,6 +8,7 @@ const Raven = require('raven'); const createRobot = require('./lib/robot'); const createServer = require('./lib/server'); +const serializers = require('./lib/serializers'); module.exports = (options = {}) => { const cache = cacheManager.caching({ @@ -19,16 +20,7 @@ module.exports = (options = {}) => { name: 'PRobot', level: process.env.LOG_LEVEL || 'debug', stream: bunyanFormat({outputMode: process.env.LOG_FORMAT || 'short'}), - serializers: { - repository: repository => repository.full_name, - event: ({id, event, payload}) => { - return { - id, event, - action: payload.action, - repository: payload.repository && payload.repository.full_name - }; - } - } + serializers }); const webhook = createWebhook({path: '/', secret: options.secret || 'development'}); diff --git a/lib/serializers.js b/lib/serializers.js new file mode 100644 index 00000000..d34ccf3b --- /dev/null +++ b/lib/serializers.js @@ -0,0 +1,16 @@ +module.exports = { + repository: repository => repository.full_name, + event: event => { + if (typeof event !== 'object' || !event.payload) { + return event; + } else { + return { + id: event.id, + event: event.event, + action: event.payload.action, + repository: event.payload.repository && event.payload.repository.full_name + }; + } + }, + installation: installation => installation.account.login +}; diff --git a/test/serializers.js b/test/serializers.js new file mode 100644 index 00000000..9265c1b3 --- /dev/null +++ b/test/serializers.js @@ -0,0 +1,27 @@ +const expect = require('expect'); +const serializers = require('../lib/serializers'); + +describe('serializers', () => { + describe('event', () => { + it('works with a legit event', () => { + const event = {id: 1, event: 'test', payload: { + action: 'test', + repository: {full_name: 'probot/test'} + }}; + expect(serializers.event(event)).toEqual({ + id: 1, + event: 'test', + action: 'test', + repository: 'probot/test' + }); + }); + + it('works with boolean', () => { + expect(serializers.event(false)).toBe(false); + }); + + it('works empty object', () => { + expect(serializers.event({})).toEqual({}); + }); + }); +});