cloc-graph
Version:
Track lines of code over time by language with visualization
65 lines (64 loc) • 3.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const logger_1 = require("../../utils/logger");
describe('Logger', () => {
// Save original console methods
const originalConsoleDebug = console.debug;
const originalConsoleInfo = console.info;
const originalConsoleWarn = console.warn;
const originalConsoleError = console.error;
beforeEach(() => {
// Mock console methods
console.debug = jest.fn();
console.info = jest.fn();
console.warn = jest.fn();
console.error = jest.fn();
});
afterEach(() => {
// Restore original console methods
console.debug = originalConsoleDebug;
console.info = originalConsoleInfo;
console.warn = originalConsoleWarn;
console.error = originalConsoleError;
});
describe('Logging methods', () => {
it('should log debug messages with the correct format', () => {
// Set log level to DEBUG (0) to ensure debug messages are logged
const logger = new logger_1.Logger({ colorize: false, timestamp: false, level: 0 });
logger.debug('Debug message');
expect(console.debug).toHaveBeenCalledWith('DEBUG: Debug message');
});
it('should log info messages with the correct format', () => {
const logger = new logger_1.Logger({ colorize: false, timestamp: false });
logger.info('Info message');
expect(console.info).toHaveBeenCalledWith('INFO : Info message');
});
it('should log warning messages with the correct format', () => {
const logger = new logger_1.Logger({ colorize: false, timestamp: false });
logger.warn('Warning message');
expect(console.warn).toHaveBeenCalledWith('WARN : Warning message');
});
it('should log error messages with the correct format', () => {
const logger = new logger_1.Logger({ colorize: false, timestamp: false });
logger.error('Error message');
expect(console.error).toHaveBeenCalledWith('ERROR: Error message');
});
});
describe('Log context data', () => {
it('should include context data in the log message', () => {
const logger = new logger_1.Logger({ colorize: false, timestamp: false });
logger.info('Message with context', { user: 'test', action: 'login' });
expect(console.info).toHaveBeenCalledWith('INFO : Message with context {"user":"test","action":"login"}');
});
});
describe('Log levels', () => {
it('should respect log level threshold', () => {
// Create a logger with INFO level (should not log DEBUG)
const logger = new logger_1.Logger({ colorize: false, timestamp: false, level: 1 });
logger.debug('Debug message');
logger.info('Info message');
expect(console.debug).not.toHaveBeenCalled();
expect(console.info).toHaveBeenCalled();
});
});
});