-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add describe to Logger tests, add m-dash to test assertions
- Loading branch information
Vadim Dalecky
authored and
Vadim Dalecky
committed
Nov 7, 2017
1 parent
e3595c0
commit ac844d7
Showing
2 changed files
with
109 additions
and
106 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,144 +1,146 @@ | ||
const Logger = require('../../src/helpers/Logger'); | ||
|
||
test('Logger must set the INFO as the default level', () => { | ||
const logger = new Logger(); | ||
describe('Logger', () => { | ||
test('must set the INFO as the default level', () => { | ||
const logger = new Logger(); | ||
|
||
expect(logger.getLevel()).toBe('INFO'); | ||
}); | ||
expect(logger.getLevel()).toBe('INFO'); | ||
}); | ||
|
||
/* eslint-disable no-console */ | ||
test('Logger must use console.log as default log function', () => { | ||
const realLog = console.log; | ||
/* eslint-disable no-console */ | ||
test('must use console.log as default log function', () => { | ||
const realLog = console.log; | ||
|
||
console.log = jest.fn(); | ||
const logger = new Logger(); | ||
console.log = jest.fn(); | ||
const logger = new Logger(); | ||
|
||
logger.log('foo', 'bar'); | ||
logger.log('foo', 'bar'); | ||
|
||
expect(console.log).toHaveBeenCalledTimes(1); | ||
expect(console.log).toHaveBeenCalledWith('foo', 'bar'); | ||
expect(console.log).toHaveBeenCalledTimes(1); | ||
expect(console.log).toHaveBeenCalledWith('foo', 'bar'); | ||
|
||
console.log = realLog; | ||
}); | ||
/* eslint-enable no-console */ | ||
console.log = realLog; | ||
}); | ||
/* eslint-enable no-console */ | ||
|
||
test('Logger must be possible to pass a log function', () => { | ||
const log = jest.fn(); | ||
const logger = new Logger({log}); | ||
test('must be possible to pass a log function', () => { | ||
const log = jest.fn(); | ||
const logger = new Logger({log}); | ||
|
||
logger.log('foo', 'bar'); | ||
logger.log('foo', 'bar'); | ||
|
||
expect(log).toHaveBeenCalledTimes(1); | ||
expect(log).toHaveBeenCalledWith('foo', 'bar'); | ||
}); | ||
expect(log).toHaveBeenCalledTimes(1); | ||
expect(log).toHaveBeenCalledWith('foo', 'bar'); | ||
}); | ||
|
||
test('Logger must be possible to pass a default log level', () => { | ||
const config = { | ||
logLevel: 'ERROR' | ||
}; | ||
const logger = new Logger(config); | ||
test('must be possible to pass a default log level', () => { | ||
const config = { | ||
logLevel: 'ERROR' | ||
}; | ||
const logger = new Logger(config); | ||
|
||
expect(logger.getLevel()).toBe('ERROR'); | ||
}); | ||
expect(logger.getLevel()).toBe('ERROR'); | ||
}); | ||
|
||
test('Logger must be possible to change the log level', () => { | ||
const logger = new Logger(); | ||
test('must be possible to change the log level', () => { | ||
const logger = new Logger(); | ||
|
||
expect(logger.getLevel()).toBe('INFO'); | ||
logger.setLevel('ERROR'); | ||
expect(logger.getLevel()).toBe('ERROR'); | ||
logger.setLevel('WARN'); | ||
expect(logger.getLevel()).toBe('WARN'); | ||
}); | ||
|
||
test('Logger must throw if you try to change the level with an unknown one', () => { | ||
const logger = new Logger(); | ||
expect(logger.getLevel()).toBe('INFO'); | ||
logger.setLevel('ERROR'); | ||
expect(logger.getLevel()).toBe('ERROR'); | ||
logger.setLevel('WARN'); | ||
expect(logger.getLevel()).toBe('WARN'); | ||
}); | ||
|
||
expect(() => logger.setLevel('asfasdfsadf')).toThrow(TypeError); | ||
expect(() => logger.setLevel(23423)).toThrow(TypeError); | ||
expect(() => logger.setLevel()).toThrow(TypeError); | ||
}); | ||
test('must throw if you try to change the level with an unknown one', () => { | ||
const logger = new Logger(); | ||
|
||
test('logger warn log must log no matter the log level', () => { | ||
const log = jest.fn(); | ||
const logger = new Logger({ | ||
log, | ||
logLevel: 'INFO' | ||
expect(() => logger.setLevel('asfasdfsadf')).toThrow(TypeError); | ||
expect(() => logger.setLevel(23423)).toThrow(TypeError); | ||
expect(() => logger.setLevel()).toThrow(TypeError); | ||
}); | ||
|
||
logger.log('INFO'); | ||
expect(log).toHaveBeenCalledWith('INFO'); | ||
test('warn log must log no matter the log level', () => { | ||
const log = jest.fn(); | ||
const logger = new Logger({ | ||
log, | ||
logLevel: 'INFO' | ||
}); | ||
|
||
logger.setLevel('WARN'); | ||
logger.log('WARN'); | ||
expect(log).toHaveBeenCalledWith('WARN'); | ||
logger.log('INFO'); | ||
expect(log).toHaveBeenCalledWith('INFO'); | ||
|
||
logger.setLevel('ERROR'); | ||
logger.log('ERROR'); | ||
expect(log).toHaveBeenCalledWith('ERROR'); | ||
logger.setLevel('WARN'); | ||
logger.log('WARN'); | ||
expect(log).toHaveBeenCalledWith('WARN'); | ||
|
||
expect(log).toHaveBeenCalledTimes(3); | ||
}); | ||
logger.setLevel('ERROR'); | ||
logger.log('ERROR'); | ||
expect(log).toHaveBeenCalledWith('ERROR'); | ||
|
||
test('logger info must log if log level is INFO', () => { | ||
const log = jest.fn(); | ||
const logger = new Logger({ | ||
log, | ||
logLevel: 'ERROR' | ||
expect(log).toHaveBeenCalledTimes(3); | ||
}); | ||
|
||
logger.info('test'); | ||
expect(log).not.toHaveBeenCalled(); | ||
test('info must log if log level is INFO', () => { | ||
const log = jest.fn(); | ||
const logger = new Logger({ | ||
log, | ||
logLevel: 'ERROR' | ||
}); | ||
|
||
logger.setLevel('WARN'); | ||
logger.info('test'); | ||
expect(log).not.toHaveBeenCalled(); | ||
logger.info('test'); | ||
expect(log).not.toHaveBeenCalled(); | ||
|
||
logger.setLevel('INFO'); | ||
logger.info('test'); | ||
expect(log).toHaveBeenCalledWith('test'); | ||
logger.setLevel('WARN'); | ||
logger.info('test'); | ||
expect(log).not.toHaveBeenCalled(); | ||
|
||
expect(log).toHaveBeenCalledTimes(1); | ||
}); | ||
logger.setLevel('INFO'); | ||
logger.info('test'); | ||
expect(log).toHaveBeenCalledWith('test'); | ||
|
||
test('logger WARN must log if log level is INFO or WARN', () => { | ||
const log = jest.fn(); | ||
const logger = new Logger({ | ||
log, | ||
logLevel: 'ERROR' | ||
expect(log).toHaveBeenCalledTimes(1); | ||
}); | ||
|
||
logger.warn('test'); | ||
expect(log).not.toHaveBeenCalled(); | ||
test('WARN must log if log level is INFO or WARN', () => { | ||
const log = jest.fn(); | ||
const logger = new Logger({ | ||
log, | ||
logLevel: 'ERROR' | ||
}); | ||
|
||
logger.setLevel('WARN'); | ||
logger.warn('test'); | ||
expect(log).toHaveBeenCalledWith('test'); | ||
logger.warn('test'); | ||
expect(log).not.toHaveBeenCalled(); | ||
|
||
logger.setLevel('INFO'); | ||
logger.warn('test2'); | ||
expect(log).toHaveBeenCalledWith('test2'); | ||
logger.setLevel('WARN'); | ||
logger.warn('test'); | ||
expect(log).toHaveBeenCalledWith('test'); | ||
|
||
expect(log).toHaveBeenCalledTimes(2); | ||
}); | ||
logger.setLevel('INFO'); | ||
logger.warn('test2'); | ||
expect(log).toHaveBeenCalledWith('test2'); | ||
|
||
test('logger ERROR must log if log level is INFO or WARN or ERROR', () => { | ||
const log = jest.fn(); | ||
const logger = new Logger({ | ||
log, | ||
logLevel: 'ERROR' | ||
expect(log).toHaveBeenCalledTimes(2); | ||
}); | ||
|
||
logger.error('test'); | ||
expect(log).toHaveBeenCalledWith('test'); | ||
test('ERROR must log if log level is INFO or WARN or ERROR', () => { | ||
const log = jest.fn(); | ||
const logger = new Logger({ | ||
log, | ||
logLevel: 'ERROR' | ||
}); | ||
|
||
logger.setLevel('WARN'); | ||
logger.error('test2'); | ||
expect(log).toHaveBeenCalledWith('test2'); | ||
logger.error('test'); | ||
expect(log).toHaveBeenCalledWith('test'); | ||
|
||
logger.setLevel('INFO'); | ||
logger.error('test3'); | ||
expect(log).toHaveBeenCalledWith('test3'); | ||
logger.setLevel('WARN'); | ||
logger.error('test2'); | ||
expect(log).toHaveBeenCalledWith('test2'); | ||
|
||
expect(log).toHaveBeenCalledTimes(3); | ||
logger.setLevel('INFO'); | ||
logger.error('test3'); | ||
expect(log).toHaveBeenCalledWith('test3'); | ||
|
||
expect(log).toHaveBeenCalledTimes(3); | ||
}); | ||
}); |