mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-03-25 10:02:27 -04:00
84 lines
2.4 KiB
TypeScript
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()
|
|
})
|
|
})
|