Files
flyer-crawler.projectium.com/src/services/logger.client.test.ts
Torben Sorensen 40b6ea35c1
All checks were successful
Deploy to Web Server flyer-crawler.projectium.com / deploy (push) Successful in 5m56s
fix logging tests
2025-12-09 13:42:49 -08:00

60 lines
1.9 KiB
TypeScript

// src/services/logger.client.test.ts
import { describe, it, expect, vi, afterEach } from 'vitest';
// IMPORTANT: Unmock the module to ensure we test the REAL implementation,
// not an auto-mocked version that doesn't actually call console methods.
vi.unmock('./logger.client');
import { logger } from './logger.client';
console.log('Logger implementation:', logger);
describe('Client Logger', () => {
afterEach(() => {
// Restore all spies
vi.restoreAllMocks();
});
it('logger.info calls console.log with [INFO] prefix', () => {
// Access globalThis.console to ensure we spy on the environment's actual console
const spy = vi.spyOn(globalThis.console, 'log').mockImplementation(() => {});
const message = 'test info';
const data = { foo: 'bar' };
logger.info(message, data);
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(`[INFO] ${message}`, data);
});
it('logger.warn calls console.warn with [WARN] prefix', () => {
const spy = vi.spyOn(globalThis.console, 'warn').mockImplementation(() => {});
const message = 'test warn';
logger.warn(message);
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(`[WARN] ${message}`);
});
it('logger.error calls console.error with [ERROR] prefix', () => {
const spy = vi.spyOn(globalThis.console, 'error').mockImplementation(() => {});
const message = 'test error';
const err = new Error('fail');
logger.error(message, err);
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(`[ERROR] ${message}`, err);
});
it('logger.debug calls console.debug with [DEBUG] prefix', () => {
const spy = vi.spyOn(globalThis.console, 'debug').mockImplementation(() => {});
const message = 'test debug';
logger.debug(message);
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(`[DEBUG] ${message}`);
});
});