79 lines
3.1 KiB
TypeScript
79 lines
3.1 KiB
TypeScript
import { describe, it, expect, vi, beforeEach, afterEach } from 'bun:test';
|
|
import ConsoleAppender from '../src/appenders/ConsoleAppender';
|
|
import { LoggingLevel } from '../src/level/LoggingLevel';
|
|
|
|
describe('ConsoleAppender', () => {
|
|
let consoleAppender: ConsoleAppender;
|
|
let mockConsoleLog: any;
|
|
let mockConsoleError: any;
|
|
|
|
beforeEach(() => {
|
|
consoleAppender = new ConsoleAppender();
|
|
|
|
// Mock console methods
|
|
mockConsoleLog = vi.spyOn(console, 'log').mockImplementation(() => {});
|
|
mockConsoleError = vi.spyOn(console, 'error').mockImplementation(() => {});
|
|
});
|
|
|
|
afterEach(() => {
|
|
mockConsoleLog.mockRestore();
|
|
mockConsoleError.mockRestore();
|
|
});
|
|
|
|
it('should log info messages to console.log', () => {
|
|
consoleAppender.log('2023-01-01T00:00:00.000Z', 'Info', 'test-category', 'info message');
|
|
|
|
expect(mockConsoleLog).toHaveBeenCalledWith('2023-01-01T00:00:00.000Z [Info] [test-category] info message');
|
|
expect(mockConsoleError).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('should log debug messages to console.log', () => {
|
|
consoleAppender.log('2023-01-01T00:00:00.000Z', 'Debug', 'test-category', 'debug message');
|
|
|
|
expect(mockConsoleLog).toHaveBeenCalledWith('2023-01-01T00:00:00.000Z [Debug] [test-category] debug message');
|
|
expect(mockConsoleError).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('should log trace messages to console.log', () => {
|
|
consoleAppender.log('2023-01-01T00:00:00.000Z', 'Trace', 'test-category', 'trace message');
|
|
|
|
expect(mockConsoleLog).toHaveBeenCalledWith('2023-01-01T00:00:00.000Z [Trace] [test-category] trace message');
|
|
expect(mockConsoleError).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('should log silly messages to console.log', () => {
|
|
consoleAppender.log('2023-01-01T00:00:00.000Z', 'Silly', 'test-category', 'silly message');
|
|
|
|
expect(mockConsoleLog).toHaveBeenCalledWith('2023-01-01T00:00:00.000Z [Silly] [test-category] silly message');
|
|
expect(mockConsoleError).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('should log warn messages to console.error', () => {
|
|
consoleAppender.log('2023-01-01T00:00:00.000Z', 'Warn', 'test-category', 'warn message');
|
|
|
|
expect(mockConsoleError).toHaveBeenCalledWith('2023-01-01T00:00:00.000Z [Warn] [test-category] warn message');
|
|
expect(mockConsoleLog).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('should log error messages to console.error', () => {
|
|
consoleAppender.log('2023-01-01T00:00:00.000Z', 'Error', 'test-category', 'error message');
|
|
|
|
expect(mockConsoleError).toHaveBeenCalledWith('2023-01-01T00:00:00.000Z [Error] [test-category] error message');
|
|
expect(mockConsoleLog).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('should log all messages to console.log', () => {
|
|
consoleAppender.log('2023-01-01T00:00:00.000Z', 'All', 'test-category', 'all message');
|
|
|
|
expect(mockConsoleLog).toHaveBeenCalledWith('2023-01-01T00:00:00.000Z [All] [test-category] all message');
|
|
expect(mockConsoleError).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('should not log off messages', () => {
|
|
consoleAppender.log('2023-01-01T00:00:00.000Z', 'Off', 'test-category', 'off message');
|
|
|
|
expect(mockConsoleLog).not.toHaveBeenCalled();
|
|
expect(mockConsoleError).not.toHaveBeenCalled();
|
|
});
|
|
});
|