import Logger from '../../../core/logging/logger'; import { LogMonitorLevel, monitorLog } from '../../../core/logging/logMonitor'; import { LogLevels, logWithPrefix } from '../../../core/logging/logUtils'; // Mocking the logWithPrefix and monitorLog functions jest.mock('../../../core/logging/logUtils', () => ({ logWithPrefix: jest.fn(), LogLevels: { VERBOSE: 'VERBOSE', INFO: 'INFO', WARN: 'WARN', ERROR: 'ERROR', }, })); jest.mock('../../../core/logging/logMonitor', () => ({ monitorLog: jest.fn(), LogMonitorLevel: { WARN: 'WARN', ERROR: 'ERROR', }, })); describe('Logger', () => { afterEach(() => { jest.clearAllMocks(); }); it('should log a verbose level message without monitoring', () => { Logger.verbose('Verbose message'); expect(logWithPrefix).toHaveBeenCalledWith( LogLevels.VERBOSE, 'Verbose message' ); expect(monitorLog).not.toHaveBeenCalled(); }); it('should log an info level message without monitoring', () => { Logger.info('Info message'); expect(logWithPrefix).toHaveBeenCalledWith(LogLevels.INFO, 'Info message'); expect(monitorLog).not.toHaveBeenCalled(); }); it('should log a warning level message with monitoring', () => { Logger.warn('Warning message', true); expect(logWithPrefix).toHaveBeenCalledWith( LogLevels.WARN, 'Warning message' ); expect(monitorLog).toHaveBeenCalledWith( LogMonitorLevel.WARN, 'Warning message' ); }); it('should log a an error level message with monitoring', () => { Logger.error('Error message'); expect(logWithPrefix).toHaveBeenCalledWith( LogLevels.ERROR, 'Error message' ); expect(monitorLog).toHaveBeenCalledWith( LogMonitorLevel.ERROR, 'Error message' ); }); it('should log an error level message without monitoring', () => { Logger.error('Non-monitored error message', false); expect(logWithPrefix).toHaveBeenCalledWith( LogLevels.ERROR, 'Non-monitored error message' ); expect(monitorLog).not.toHaveBeenCalled(); }); it('should log a warning level message without monitoring', () => { Logger.warn('Non-monitored warning message', false); expect(logWithPrefix).toHaveBeenCalledWith( LogLevels.WARN, 'Non-monitored warning message' ); expect(monitorLog).not.toHaveBeenCalled(); }); });