From 4f85225395f8f6091dd220c65c93881a16203600 Mon Sep 17 00:00:00 2001 From: Rafael Ortega Bueno Date: Tue, 3 Sep 2024 20:43:19 -0300 Subject: [PATCH] fix: ensure baseFormatter.format is called when event name is not recognized; test: add mock for baseFormatter to verify format method calls --- .../log-standard-event-formatter-decorator.ts | 7 ++----- ...-standard-event-formatter-decorator.spec.ts | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/core/log-standard-event-formatter-decorator.ts b/src/core/log-standard-event-formatter-decorator.ts index 645172c..e15f9e3 100644 --- a/src/core/log-standard-event-formatter-decorator.ts +++ b/src/core/log-standard-event-formatter-decorator.ts @@ -61,10 +61,7 @@ export class LogStandardEventFormatterDecorator implements FormatterInterface { !args.global_event_name || !this.isKnownEventName(args.global_event_name) ) { - return JSON.stringify({ - ...formattedMessage, - context: args?.context || {}, - }); + return this.baseFormatter.format(message, level, args); } args.context = args.context || {}; @@ -77,4 +74,4 @@ export class LogStandardEventFormatterDecorator implements FormatterInterface { context: args.context, }); } -} \ No newline at end of file +} diff --git a/tests/unit/log-standard-event-formatter-decorator.spec.ts b/tests/unit/log-standard-event-formatter-decorator.spec.ts index 4d1e3d9..57ad23d 100644 --- a/tests/unit/log-standard-event-formatter-decorator.spec.ts +++ b/tests/unit/log-standard-event-formatter-decorator.spec.ts @@ -10,6 +10,7 @@ describe('Formatter', () => { beforeEach(() => { mockFormatter = { serviceName: 'service', + format: jest.fn() } as unknown as jest.Mocked; logStandardFormatterDecorator = new LogStandardEventFormatterDecorator(mockFormatter); @@ -20,6 +21,17 @@ describe('Formatter', () => { }); it('Should format correctly with a generic event name', () => { + mockFormatter.format.mockReturnValue( + JSON.stringify({ + message: 'mensagem', + level: LogLevel.info, + global_event_timestamp: '2021-01-01T03:00:00.000Z', + service_name: 'service', + global_event_name: 'teste', + context: {}, + }) + ); + const response = logStandardFormatterDecorator.format('mensagem', LogLevel.info, { global_event_name: 'teste', }); @@ -30,10 +42,14 @@ describe('Formatter', () => { global_event_timestamp: '2021-01-01T03:00:00.000Z', service_name: 'service', global_event_name: 'teste', - context: {} + context: {}, }); expect(response).toBe(expected); + + expect(mockFormatter.format).toHaveBeenCalledWith('mensagem', LogLevel.info, { + global_event_name: 'teste', + }); }); it('Should format correctly when PROCESS_STARTUP_FAILED is sent with all required fields and correct log level', () => {