test/logger/TestConsoleLogger.ts
import { expect } from 'chai';
import { restore, spy } from 'sinon';
import { ConsoleLogger } from '../../src/logger/ConsoleLogger.js';
/* eslint-disable no-console, @typescript-eslint/unbound-method */
describe('console logger', async () => {
beforeEach(() => {
spy(console, 'debug');
spy(console, 'error');
spy(console, 'info');
spy(console, 'log');
spy(console, 'warn');
});
afterEach(() => {
restore();
});
it('should return the global singleton for children', async () => {
expect(ConsoleLogger.global.child()).to.equal(ConsoleLogger.global);
});
it('should log at debug level', async () => {
const data = {};
const msg = 'debug';
ConsoleLogger.global.debug(data, msg);
expect(console.debug).to.have.callCount(1);
expect(console.debug).to.have.been.calledWithExactly(data, msg);
expect(console.error).to.have.callCount(0);
expect(console.info).to.have.callCount(0);
expect(console.log).to.have.callCount(0);
expect(console.warn).to.have.callCount(0);
});
it('should log at error level', async () => {
const data = {};
const msg = 'error';
ConsoleLogger.global.error(data, msg);
expect(console.error).to.have.callCount(1);
expect(console.error).to.have.been.calledWithExactly(data, msg);
expect(console.debug).to.have.callCount(0);
expect(console.info).to.have.callCount(0);
expect(console.log).to.have.callCount(0);
expect(console.warn).to.have.callCount(0);
});
it('should log at info level', async () => {
const data = {};
const msg = 'info';
ConsoleLogger.global.info(data, msg);
expect(console.info).to.have.callCount(1);
expect(console.info).to.have.been.calledWithExactly(data, msg);
expect(console.debug).to.have.callCount(0);
expect(console.error).to.have.callCount(0);
expect(console.log).to.have.callCount(0);
expect(console.warn).to.have.callCount(0);
});
it('should log at warn level', async () => {
const data = {};
const msg = 'warn';
ConsoleLogger.global.warn(data, msg);
expect(console.warn).to.have.callCount(1);
expect(console.warn).to.have.been.calledWithExactly(data, msg);
expect(console.debug).to.have.callCount(0);
expect(console.error).to.have.callCount(0);
expect(console.info).to.have.callCount(0);
expect(console.log).to.have.callCount(0);
});
});