Update version to 0.0.16, add Appender and AppenderFactory classes, refactor LoggerFactory methods, and implement logging functionality with tests.
This commit is contained in:
78
tests/ConsoleAppender.test.ts
Normal file
78
tests/ConsoleAppender.test.ts
Normal file
@@ -0,0 +1,78 @@
|
||||
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();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user