import { expect, describe, it, vi } from 'vitest'; import { Logger } from './logger'; describe('logger', () => { it('default debug mode is false', () => { const logger = new Logger(); expect(logger.debugMode).toBeFalsy(); }); it('should log error when debugMode is true', () => { const logger = new Logger(true); const consoleErrorSpy = vi .spyOn(console, 'error') .mockImplementation(() => {}); logger.error('Test error message'); expect(consoleErrorSpy).toHaveBeenCalledWith('Test error message'); consoleErrorSpy.mockRestore(); }); it('should not log error when debugMode is false', () => { const logger = new Logger(false); const consoleErrorSpy = vi .spyOn(console, 'error') .mockImplementation(() => {}); logger.error('Test error message'); expect(consoleErrorSpy).not.toHaveBeenCalled(); consoleErrorSpy.mockRestore(); }); it('should log warning when debugMode is true', () => { const logger = new Logger(true); const consoleWarnSpy = vi .spyOn(console, 'warn') .mockImplementation(() => {}); logger.warn('Test warning message'); expect(consoleWarnSpy).toHaveBeenCalledWith('Test warning message'); consoleWarnSpy.mockRestore(); }); it('should not log warning when debugMode is false', () => { const logger = new Logger(false); const consoleWarnSpy = vi .spyOn(console, 'warn') .mockImplementation(() => {}); logger.warn('Test warning message'); expect(consoleWarnSpy).not.toHaveBeenCalled(); consoleWarnSpy.mockRestore(); }); it('should log debug message when debugMode is true', () => { const logger = new Logger(true); const consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => {}); logger.debug('Test debug message'); expect(consoleLogSpy).toHaveBeenCalledWith('Test debug message'); consoleLogSpy.mockRestore(); }); it('should not log debug message when debugMode is false', () => { const logger = new Logger(false); const consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => {}); logger.debug('Test debug message'); expect(consoleLogSpy).not.toHaveBeenCalled(); consoleLogSpy.mockRestore(); }); });