Last active
October 15, 2020 02:01
-
-
Save jkyoutsey/01e3e2db4ba9a570245bd63d543960e1 to your computer and use it in GitHub Desktop.
Unit test for logger.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Logger } from './logger'; | |
import { environment } from '@environments/environment'; | |
describe('Logger Spec', () => { | |
let debug; | |
let info; | |
let warn; | |
let err; | |
let log; | |
beforeEach(() => { | |
debug = spyOn(console, 'debug'); | |
info = spyOn(console, 'info'); | |
warn = spyOn(console, 'warn'); | |
err = spyOn(console, 'error'); | |
log = spyOn(console, 'log'); | |
}); | |
it('can log empty message', () => { | |
Logger.debug('MODULE', 'METHOD', ''); | |
expect(debug).toHaveBeenCalledWith('MODULE.METHOD'); | |
}); | |
it('can log without message', () => { | |
Logger.debug('MODULE', 'METHOD'); | |
expect(debug).toHaveBeenCalledWith('MODULE.METHOD'); | |
}); | |
it('can log with undefined message', () => { | |
Logger.debug('MODULE', 'METHOD', undefined); | |
expect(debug).toHaveBeenCalledWith('MODULE.METHOD'); | |
}); | |
it('can log debug number', () => { | |
Logger.debug('MODULE', 'METHOD', 42); | |
expect(debug).toHaveBeenCalledWith('MODULE.METHOD - 42'); | |
}); | |
it('can log debug string', () => { | |
Logger.debug('MODULE', 'METHOD', 'STRING'); | |
expect(debug).toHaveBeenCalledWith('MODULE.METHOD - STRING'); | |
}); | |
it('can log debug object', () => { | |
const obj = { prop1: 'hello' }; | |
Logger.debug('MODULE', 'METHOD', obj); | |
expect(debug).toHaveBeenCalledWith(`MODULE.METHOD - ${JSON.stringify(obj)}`); | |
}); | |
it('debug honors devOnly flag', () => { | |
if (environment.production) { | |
Logger.debug('MODULE', 'METHOD', 'STRING', true); | |
expect(debug).toHaveBeenCalledWith('MODULE.METHOD'); | |
} else { | |
Logger.debug('MODULE', 'METHOD', 'STRING', true); | |
expect(debug).toHaveBeenCalledWith('MODULE.METHOD - STRING'); | |
} | |
}); | |
it('can log info string', () => { | |
Logger.info('MODULE', 'METHOD', 'STRING'); | |
expect(info).toHaveBeenCalledWith('MODULE.METHOD - STRING'); | |
}); | |
it('can log info object', () => { | |
const obj = { prop1: 'hello' }; | |
Logger.info('MODULE', 'METHOD', obj); | |
expect(info).toHaveBeenCalledWith(`MODULE.METHOD - ${JSON.stringify(obj)}`); | |
}); | |
it('info honors devOnly flag', () => { | |
if (environment.production) { | |
Logger.info('MODULE', 'METHOD', 'STRING', true); | |
expect(info).toHaveBeenCalledWith('MODULE.METHOD'); | |
} else { | |
Logger.info('MODULE', 'METHOD', 'STRING', true); | |
expect(info).toHaveBeenCalledWith('MODULE.METHOD - STRING'); | |
} | |
}); | |
it('can log warn string', () => { | |
Logger.warn('MODULE', 'METHOD', 'STRING'); | |
expect(warn).toHaveBeenCalledWith('MODULE.METHOD - STRING'); | |
}); | |
it('can log warn object', () => { | |
const obj = { prop1: 'hello' }; | |
Logger.warn('MODULE', 'METHOD', obj); | |
expect(warn).toHaveBeenCalledWith(`MODULE.METHOD - ${JSON.stringify(obj)}`); | |
}); | |
it('warn honors devOnly flag', () => { | |
if (environment.production) { | |
Logger.warn('MODULE', 'METHOD', 'STRING', true); | |
expect(warn).toHaveBeenCalledWith('MODULE.METHOD'); | |
} else { | |
Logger.warn('MODULE', 'METHOD', 'STRING', true); | |
expect(warn).toHaveBeenCalledWith('MODULE.METHOD - STRING'); | |
} | |
}); | |
it('can log error string', () => { | |
Logger.error('MODULE', 'METHOD', 'STRING'); | |
expect(err).toHaveBeenCalledWith('MODULE.METHOD - STRING'); | |
}); | |
it('can log error object', () => { | |
const obj = { prop1: 'hello' }; | |
Logger.error('MODULE', 'METHOD', obj); | |
expect(err).toHaveBeenCalledWith(`MODULE.METHOD - ${JSON.stringify(obj)}`); | |
}); | |
it('error honors devOnly flag', () => { | |
if (environment.production) { | |
Logger.error('MODULE', 'METHOD', 'STRING', true); | |
expect(err).toHaveBeenCalledWith('MODULE.METHOD'); | |
} else { | |
Logger.error('MODULE', 'METHOD', 'STRING', true); | |
expect(err).toHaveBeenCalledWith('MODULE.METHOD - STRING'); | |
} | |
}); | |
it('can devOnly log string', () => { | |
Logger.devOnly('MODULE', 'METHOD', 'STRING'); | |
if (environment.production) { | |
expect(log).not.toHaveBeenCalled(); | |
} else { | |
expect(log).toHaveBeenCalled(); | |
} | |
}); | |
it('can devOnly log object', () => { | |
const obj = { prop1: 'hello' }; | |
Logger.devOnly('MODULE', 'METHOD', obj); | |
if (environment.production) { | |
expect(log).not.toHaveBeenCalled(); | |
} else { | |
expect(log).toHaveBeenCalledWith(`MODULE.METHOD - ${JSON.stringify(obj)}`); | |
} | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment