jest.mock('./Logger'); jest.useFakeTimers(); import { Logger } from './Logger'; import { LogLevel } from './LogLevel'; import { LogSource } from './LogSource'; describe('Logger', () => { test('Getters and Setters', () => { const logger = new Logger(LogSource.Other, true, ''); logger.logLevel = LogLevel.Error; expect(logger.logLevel).toBe(LogLevel.Error); logger.logLevel = LogLevel.Information; expect(logger.logLevel).toBe(LogLevel.Information); }); test('log error', () => { const logger = new Logger(LogSource.Other, true, ''); Logger.clearTimeOutForLogger(); logger.logLevel = LogLevel.Error; logger.logError('test log error'); expect(Logger.getBufferedLogsMock(LogLevel.Error).length).toBe(1); }); test('after push logs buffer shoulb be empty', () => { const logger = new Logger(LogSource.Other, true, ''); Logger.clearTimeOutForLogger(); logger.logLevel = LogLevel.Error; logger.logError('test log error'); logger.pushLogs(); expect(Logger.getBufferedLogsMock(LogLevel.Error).length).toBe(0); }); test('write with different log levels', () => { const logger = new Logger(LogSource.Other, true, ''); Logger.clearTimeOutForLogger(); logger.logLevel = LogLevel.Error; logger.logWarning('test log warning'); expect(Logger.getBufferedLogsMock(LogLevel.Error).length).toBe(0); logger.logError('test log error'); expect(Logger.getBufferedLogsMock(LogLevel.Error).length).toBe(1); }); });