Skip to content

Commit

Permalink
Merge pull request #10531 from ChrisiPK/patch-logger-error-call
Browse files Browse the repository at this point in the history
fix(common): correct order for logger error parameters
  • Loading branch information
kamilmysliwiec committed Feb 1, 2023
2 parents 80b8c86 + 584015b commit 38c3652
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 26 deletions.
4 changes: 3 additions & 1 deletion packages/common/services/logger.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,9 @@ export class Logger implements LoggerService {
@Logger.WrapBuffer
error(message: any, ...optionalParams: any[]) {
optionalParams = this.context
? optionalParams.concat(this.context)
? (optionalParams.length ? optionalParams : [undefined]).concat(
this.context,
)
: optionalParams;

this.localInstance?.error(message, ...optionalParams);
Expand Down
94 changes: 69 additions & 25 deletions packages/common/test/services/logger.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -480,43 +480,87 @@ describe('Logger', () => {
warn(message: any, context?: string) {}
}

const customLogger = new CustomLogger();
const originalLogger = new Logger();
describe('with global context', () => {
const customLogger = new CustomLogger();
const globalContext = 'RandomContext';
const originalLogger = new Logger(globalContext);

let previousLoggerRef: LoggerService;
let previousLoggerRef: LoggerService;

beforeEach(() => {
previousLoggerRef =
Logger['localInstanceRef'] || Logger['staticInstanceRef'];
Logger.overrideLogger(customLogger);
});
beforeEach(() => {
previousLoggerRef =
Logger['localInstanceRef'] || Logger['staticInstanceRef'];
Logger.overrideLogger(customLogger);
});

afterEach(() => {
Logger.overrideLogger(previousLoggerRef);
});
afterEach(() => {
Logger.overrideLogger(previousLoggerRef);
});

it('should call custom logger "#log()" method', () => {
const message = 'random message';
const context = 'RandomContext';
it('should call custom logger "#log()" method with context as second argument', () => {
const message = 'random log message with global context';

const customLoggerLogSpy = sinon.spy(customLogger, 'log');
const customLoggerLogSpy = sinon.spy(customLogger, 'log');

originalLogger.log(message, context);
originalLogger.log(message);

expect(customLoggerLogSpy.called).to.be.true;
expect(customLoggerLogSpy.calledWith(message, context)).to.be.true;
expect(customLoggerLogSpy.called).to.be.true;
expect(customLoggerLogSpy.calledWith(message, globalContext)).to.be
.true;
});
it('should call custom logger "#error()" method with context as third argument', () => {
const message = 'random error message with global context';

const customLoggerErrorSpy = sinon.spy(customLogger, 'error');

originalLogger.error(message);

expect(customLoggerErrorSpy.called).to.be.true;
expect(
customLoggerErrorSpy.calledWith(message, undefined, globalContext),
).to.be.true;
});
});
describe('without global context', () => {
const customLogger = new CustomLogger();
const originalLogger = new Logger();

it('should call custom logger "#error()" method', () => {
const message = 'random message';
const context = 'RandomContext';
let previousLoggerRef: LoggerService;

const customLoggerErrorSpy = sinon.spy(customLogger, 'error');
beforeEach(() => {
previousLoggerRef =
Logger['localInstanceRef'] || Logger['staticInstanceRef'];
Logger.overrideLogger(customLogger);
});

originalLogger.error(message, context);
afterEach(() => {
Logger.overrideLogger(previousLoggerRef);
});

expect(customLoggerErrorSpy.called).to.be.true;
expect(customLoggerErrorSpy.calledWith(message, context)).to.be.true;
it('should call custom logger "#log()" method', () => {
const message = 'random message';
const context = 'RandomContext';

const customLoggerLogSpy = sinon.spy(customLogger, 'log');

originalLogger.log(message, context);

expect(customLoggerLogSpy.called).to.be.true;
expect(customLoggerLogSpy.calledWith(message, context)).to.be.true;
});

it('should call custom logger "#error()" method', () => {
const message = 'random message';
const context = 'RandomContext';

const customLoggerErrorSpy = sinon.spy(customLogger, 'error');

originalLogger.error(message, undefined, context);

expect(customLoggerErrorSpy.called).to.be.true;
expect(customLoggerErrorSpy.calledWith(message, undefined, context))
.to.be.true;
});
});
});
});
Expand Down

0 comments on commit 38c3652

Please sign in to comment.