Files
Compass/common/tests/unit/logger.test.ts
MartinBraquet 33d7308cfa Fix tests
2026-03-01 04:15:26 +01:00

84 lines
2.4 KiB
TypeScript

import {logApiError, logger} from 'common/logger'
describe('logger', () => {
const originalEnv = process.env.NODE_ENV
afterEach(() => {
process.env.NODE_ENV = originalEnv
})
it('logs info messages in development', () => {
process.env.NODE_ENV = 'development'
const consoleSpy = jest.spyOn(console, 'info').mockImplementation(() => {})
logger.info('Test message', {key: 'value'})
expect(consoleSpy).toHaveBeenCalled()
const loggedArg = consoleSpy.mock.calls[0][0]
expect(loggedArg).toContain('Test message')
expect(loggedArg).toContain('value')
consoleSpy.mockRestore()
})
it('logs error messages with error context', () => {
process.env.NODE_ENV = 'production'
const consoleSpy = jest.spyOn(console, 'error').mockImplementation(() => {})
const testError = new Error('Test error')
logger.error('Error occurred', testError, {endpoint: '/api/test'})
expect(consoleSpy).toHaveBeenCalled()
const loggedArg = consoleSpy.mock.calls[0][0]
expect(loggedArg).toContain('Error occurred')
expect(loggedArg).toContain('/api/test')
consoleSpy.mockRestore()
})
it('logs warn messages', () => {
process.env.NODE_ENV = 'development'
const consoleSpy = jest.spyOn(console, 'warn').mockImplementation(() => {})
logger.warn('Warning message', {context: 'test'})
expect(consoleSpy).toHaveBeenCalled()
consoleSpy.mockRestore()
})
it('logs debug messages only in development', () => {
process.env.NODE_ENV = 'production'
const consoleSpy = jest.spyOn(console, 'debug').mockImplementation(() => {})
logger.debug('Debug message')
expect(consoleSpy).not.toHaveBeenCalled()
consoleSpy.mockRestore()
process.env.NODE_ENV = 'development'
const consoleSpy2 = jest.spyOn(console, 'debug').mockImplementation(() => {})
logger.debug('Debug message')
expect(consoleSpy2).toHaveBeenCalled()
consoleSpy2.mockRestore()
})
})
describe('logApiError', () => {
it('formats API errors correctly', () => {
const consoleSpy = jest.spyOn(console, 'error').mockImplementation(() => {})
const testError = new Error('API failed')
logApiError('/api/users', testError)
expect(consoleSpy).toHaveBeenCalled()
const loggedArg = consoleSpy.mock.calls[0][0]
expect(loggedArg).toContain('API Error in /api/users')
expect(loggedArg).toContain('API failed')
consoleSpy.mockRestore()
})
})