initial codebase
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import { Logger, LogLevel, LogOutput } from './logger.service';
|
||||
|
||||
const logMethods = ['log', 'info', 'warn', 'error'];
|
||||
|
||||
describe('Logger', () => {
|
||||
let savedConsole: Function[];
|
||||
let savedLevel: LogLevel;
|
||||
let savedOutputs: LogOutput[];
|
||||
|
||||
beforeAll(() => {
|
||||
savedConsole = [];
|
||||
logMethods.forEach((m) => {
|
||||
savedConsole[m] = console[m];
|
||||
console[m] = () => {};
|
||||
});
|
||||
savedLevel = Logger.level;
|
||||
savedOutputs = Logger.outputs;
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
logMethods.forEach((m) => { console[m] = savedConsole[m]; });
|
||||
Logger.level = savedLevel;
|
||||
Logger.outputs = savedOutputs;
|
||||
});
|
||||
|
||||
it('should create an instance', () => {
|
||||
expect(new Logger()).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should add a new LogOutput and receives log entries', () => {
|
||||
// Arrange
|
||||
const outputSpy = jasmine.createSpy('outputSpy');
|
||||
const log = new Logger('test');
|
||||
|
||||
// Act
|
||||
Logger.outputs.push(outputSpy);
|
||||
|
||||
log.debug('d');
|
||||
log.info('i');
|
||||
log.warn('w');
|
||||
log.error('e', { error: true });
|
||||
|
||||
// Assert
|
||||
expect(outputSpy).toHaveBeenCalled();
|
||||
expect(outputSpy.calls.count()).toBe(4);
|
||||
expect(outputSpy).toHaveBeenCalledWith('test', LogLevel.Debug, 'd');
|
||||
expect(outputSpy).toHaveBeenCalledWith('test', LogLevel.Info, 'i');
|
||||
expect(outputSpy).toHaveBeenCalledWith('test', LogLevel.Warning, 'w');
|
||||
expect(outputSpy).toHaveBeenCalledWith('test', LogLevel.Error, 'e', { error: true });
|
||||
});
|
||||
|
||||
it('should add a new LogOutput and receives only production log entries', () => {
|
||||
// Arrange
|
||||
const outputSpy = jasmine.createSpy('outputSpy');
|
||||
const log = new Logger('test');
|
||||
|
||||
// Act
|
||||
Logger.outputs.push(outputSpy);
|
||||
Logger.enableProductionMode();
|
||||
|
||||
log.debug('d');
|
||||
log.info('i');
|
||||
log.warn('w');
|
||||
log.error('e', { error: true });
|
||||
|
||||
// Assert
|
||||
expect(outputSpy).toHaveBeenCalled();
|
||||
expect(outputSpy.calls.count()).toBe(2);
|
||||
expect(outputSpy).toHaveBeenCalledWith('test', LogLevel.Warning, 'w');
|
||||
expect(outputSpy).toHaveBeenCalledWith('test', LogLevel.Error, 'e', { error: true });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user