Files
gridpilot.gg/adapters/logging/ConsoleLogger.test.ts
2025-12-23 20:43:57 +01:00

69 lines
2.4 KiB
TypeScript

import { vi, type Mock } from 'vitest';
import { ConsoleLogger } from './ConsoleLogger';
describe('ConsoleLogger', () => {
let logger: ConsoleLogger;
let consoleDebugSpy: Mock;
let consoleInfoSpy: Mock;
let consoleWarnSpy: Mock;
let consoleErrorSpy: Mock;
beforeEach(() => {
logger = new ConsoleLogger();
consoleDebugSpy = vi.spyOn(console, 'debug').mockImplementation(() => {});
consoleInfoSpy = vi.spyOn(console, 'info').mockImplementation(() => {});
consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
});
afterEach(() => {
consoleDebugSpy.mockRestore();
consoleInfoSpy.mockRestore();
consoleWarnSpy.mockRestore();
consoleErrorSpy.mockRestore();
});
it('should call console.debug with a formatted message when debug is called', () => {
const message = 'Debug message';
const context = { key: 'value' };
logger.debug(message, context);
expect(consoleDebugSpy).toHaveBeenCalledTimes(1);
expect(consoleDebugSpy).toHaveBeenCalledWith(
expect.stringContaining('DEBUG: Debug message | {"key":"value"}'),
);
});
it('should call console.info with a formatted message when info is called', () => {
const message = 'Info message';
const context = { key: 'value' };
logger.info(message, context);
expect(consoleInfoSpy).toHaveBeenCalledTimes(1);
expect(consoleInfoSpy).toHaveBeenCalledWith(
expect.stringContaining('INFO: Info message | {"key":"value"}'),
);
});
it('should call console.warn with a formatted message when warn is called', () => {
const message = 'Warn message';
const context = { key: 'value' };
logger.warn(message, context);
expect(consoleWarnSpy).toHaveBeenCalledTimes(1);
expect(consoleWarnSpy).toHaveBeenCalledWith(
expect.stringContaining('WARN: Warn message | {"key":"value"}'),
);
});
it('should call console.error with a formatted message when error is called', () => {
const message = 'Error message';
const error = new Error('Something went wrong');
const context = { key: 'value' };
logger.error(message, error, context);
expect(consoleErrorSpy).toHaveBeenCalledTimes(1);
expect(consoleErrorSpy).toHaveBeenCalledWith(
expect.stringContaining(
'ERROR: Error message | {"key":"value"} | Error: Something went wrong',
),
);
});
});