From 03da190baa91aea1044de06bdc72e4e50f3ec420 Mon Sep 17 00:00:00 2001 From: Ruben Casas Date: Wed, 2 Dec 2020 16:35:56 +0000 Subject: [PATCH] fix(clientErrorLogger): format console error message (#382) --- __tests__/server/middleware/clientErrorLogger.spec.js | 5 ++++- package-lock.json | 6 +++--- package.json | 2 +- src/server/middleware/clientErrorLogger.js | 4 +++- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/__tests__/server/middleware/clientErrorLogger.spec.js b/__tests__/server/middleware/clientErrorLogger.spec.js index dca62ade6..8c4291931 100644 --- a/__tests__/server/middleware/clientErrorLogger.spec.js +++ b/__tests__/server/middleware/clientErrorLogger.spec.js @@ -15,11 +15,13 @@ */ import { createRequest, createResponse } from 'node-mocks-http'; +import util from 'util'; describe('clientErrorLogger', () => { let clientErrorLogger; jest.spyOn(console, 'error').mockImplementation(() => {}); jest.spyOn(console, 'warn').mockImplementation(() => {}); + jest.spyOn(util, 'inspect').mockImplementation(() => {}); function load(nodeEnv) { if (typeof nodeEnv !== 'string') { @@ -96,7 +98,8 @@ describe('clientErrorLogger', () => { console.error.mockClear(); clientErrorLogger(req, res); expect(console.error).toHaveBeenCalledTimes(1); - const logged = console.error.mock.calls[0][0]; + expect(util.inspect).toHaveBeenCalledTimes(1); + const logged = util.inspect.mock.calls[0][0]; expect(logged).toBeInstanceOf(Error); expect(logged).toHaveProperty('name', 'ClientReportedError'); expect(logged).toHaveProperty('stack', 'Error: something broke\n at methodA (resource-a.js:1:1)\n at methodB (resource-b.js:1:1)\n'); diff --git a/package-lock.json b/package-lock.json index 5d704bfd6..c9a31c0eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -497,9 +497,9 @@ } }, "@americanexpress/one-app-ducks": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@americanexpress/one-app-ducks/-/one-app-ducks-4.2.0.tgz", - "integrity": "sha512-iajYoLf0bDPfA2JzKrlt8uHZ+qRrtwU4Ff2NdpvrKxOg+sLNcLWOy5oUtNMuz0LWor7do09GTNkTJPTv4KOHDg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@americanexpress/one-app-ducks/-/one-app-ducks-4.2.2.tgz", + "integrity": "sha512-XYkm610ghrpItjpwT37qfff/njRj9KiEFlEEkWz5zIxtyD5z8kp6g8jRAuMlVX6CKggK7s0nlSXpxmNjzOlwnQ==", "requires": { "holocron": "^1.0.0-9", "immutable": "^4.0.0-rc.12", diff --git a/package.json b/package.json index 41ed25d57..1ad3225c5 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "@americanexpress/fetch-enhancers": "^1.0.1", "@americanexpress/lumberjack": "^1.1.4", "@americanexpress/one-app-bundler": "^6.10.0", - "@americanexpress/one-app-ducks": "^4.2.0", + "@americanexpress/one-app-ducks": "^4.2.2", "@americanexpress/one-app-router": "^1.1.0", "@americanexpress/vitruvius": "^2.0.2", "abort-controller": "^3.0.0", diff --git a/src/server/middleware/clientErrorLogger.js b/src/server/middleware/clientErrorLogger.js index 3cc6785ba..2a4a13ae7 100644 --- a/src/server/middleware/clientErrorLogger.js +++ b/src/server/middleware/clientErrorLogger.js @@ -15,6 +15,8 @@ */ // /_/report/errors +import util from 'util'; + const nodeEnvIsDevelopment = process.env.NODE_ENV === 'development'; export default function clientErrorLogger(req, res) { @@ -53,7 +55,7 @@ export default function clientErrorLogger(req, res) { correlationId, }, }); - console.error(err); + console.error(util.inspect(err, false, 10, true)); }); } else { // drop on the floor, this is the wrong interface