Skip to content

Commit

Permalink
Add lodash cloneDeep to add support for arrays in input-output-logger…
Browse files Browse the repository at this point in the history
… and unit test with the case.
  • Loading branch information
miguel-naz-mor committed Aug 28, 2020
1 parent cbe282f commit 68f7ab2
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
18 changes: 18 additions & 0 deletions packages/input-output-logger/__tests__/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,23 @@ describe('📦 Middleware Input Output Logger', () => {
expect(logger).toHaveBeenCalledWith({ event: { foo: 'bar', fuu: 'baz' } })
expect(logger).toHaveBeenCalledWith({ response: 'yo' })
})

test('Skipped parts should be present in the response', async () => {
const logger = jest.fn()

const handler = middy((event, context, cb) => {
cb(null, { foo: [{ foo: 'bar', fuu: 'baz' }] })
})

handler
.use(inputOutputLogger({ logger, omitPaths: ['event.zooloo', 'event.foo.hoo', 'response.foo[0].foo'] }))

const response = await invoke(handler, { foo: 'bar', fuu: 'baz' })

expect(logger).toHaveBeenCalledWith({ event: { foo: 'bar', fuu: 'baz' } })
expect(logger).toHaveBeenCalledWith({ response: { foo: [{ fuu: 'baz' }] } })

expect(response).toMatchObject({ foo: [{ foo: 'bar', fuu: 'baz' }] })
})
})
})
4 changes: 3 additions & 1 deletion packages/input-output-logger/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const omit = require('lodash/omit')
const cloneDeep = require('lodash/cloneDeep')

module.exports = (opts) => {
const defaults = {
Expand All @@ -9,7 +10,8 @@ module.exports = (opts) => {
const { logger, omitPaths } = Object.assign({}, defaults, opts)

const omitAndLog = message => {
const redactedMessage = omit(message, omitPaths)
const messageClone = cloneDeep(message)
const redactedMessage = omit(messageClone, omitPaths)
logger(redactedMessage)
}

Expand Down

0 comments on commit 68f7ab2

Please sign in to comment.