From 289b2b81cab94258565d288a1a9fa83fbf7dc2f9 Mon Sep 17 00:00:00 2001 From: Islam Shehata Date: Wed, 27 Mar 2024 14:03:41 +0200 Subject: [PATCH] stringify event before sending to console --- src/logger.ts | 2 +- tests/vercelConfig.test.ts | 17 ++++++----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/logger.ts b/src/logger.ts index 6e8a82ff..45ac0758 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -160,7 +160,7 @@ export class Logger { // to send logs to Axiom without HTTP. // This saves resources and time on lambda and edge functions if (isVercel && (this.config.source === 'edge' || this.config.source === 'lambda')) { - this.logEvents.forEach((ev) => console.log(ev)); + this.logEvents.forEach((ev) => console.log(JSON.stringify(ev))); this.logEvents = []; return; } diff --git a/tests/vercelConfig.test.ts b/tests/vercelConfig.test.ts index d0cf1141..61636143 100644 --- a/tests/vercelConfig.test.ts +++ b/tests/vercelConfig.test.ts @@ -29,15 +29,10 @@ test('logging to console when running on lambda', async () => { await logger.flush(); expect(mockedConsole).toHaveBeenCalledTimes(1); - expect(mockedConsole).toHaveBeenCalledWith({ - _time: time, - fields: {}, - level: 'info', - message: 'hello, world!', - vercel: { - environment: 'test', - region: undefined, - source: 'lambda', - }, - }); + + const calledWithPayload = JSON.parse(mockedConsole.mock.calls[0][0]); + expect(calledWithPayload.message).toEqual('hello, world!'); + expect(calledWithPayload.level).toEqual('info'); + expect(calledWithPayload._time).toEqual(time); + expect(calledWithPayload.vercel.source).toEqual('lambda'); });