pelias-mock-logger
v1.7.0
Published
Mock logger for testing logging behavior in Pelias projects
Downloads
1,895
Readme
Pelias Mock Logger
This module is used for testing logging events in Pelias projects. proxyquire is the supported module for overriding dependencies in which this module is used.
Installation
$ npm install pelias-mock-logger --save-dev
NPM Module
The pelias-mock-logger
npm module can be found here:
https://npmjs.org/package/pelias-mock-logger
Usage
Traditionally, testing logging events required quite a bit of setup with proxyquire:
const errorMessages = [];
var service = proxyquire('../../../service/interpolation', {
'pelias-logger': {
get: () => {
return {
error: (msg) => { errorMessages.push(msg); },
info: (msg) => {}
};
}
}
}).search();
t.deepEquals(errorMessages, ['RequireTransport: failed to connect to interpolation service']);
Using the pelias-mock-logger
module, this code can be shortened to:
const logger = require('pelias-mock-logger')();
var adapter = proxyquire('../../../service/interpolation', {
'pelias-logger': logger
}).search();
t.deepEquals(logger.getErrorMessages(), ['RequireTransport: failed to connect to interpolation service']);
Functions
- logging events
error(msg)
warn(msg)
info(msg)
verbose(msg)
debug(msg)
silly(msg)
getLayer()
: returns the value passed to.get()
inrequire( 'pelias-logger' ).get( 'api' )
getLevels()
: returns the supported logging levels:error
,warn
,info
,verbose
,debug
, andsilly
getMessages(level, pattern)
: returns all messages logged at a level, optionally matching a pattern- Examples:
getMessages('error')
getMessages('error', /backend error occurred/)
- Examples:
hasMessages(level, pattern)
: returns whether messages were logged at a level, optionally matching a pattern- Examples:
hasMessages('error')
hasMessages('error', /backend error occurred/)
- Examples:
isMessage(level, pattern)
: returns whether the supplied pattern matches or is equal to any messages logged at the specified level- Examples
isMessage('error', /backend error occurred)
isMessage('error', 'a backend error occurred, contact the Pelias team for assistance')
- Examples
- level-specific functions
- getMessages: returns all messages logged at the level specified in function name, optionally matching a pattern
getErrorMessages(pattern)
getWarnMessages(pattern)
getInfoMessages(pattern)
getVerboseMessages(pattern)
getDebugMessages(pattern)
getSillyMessages(pattern)
- hasMessages: returns whether messages were logged at the level specified in function name, optionally matching a pattern
hasErrorMessages(pattern)
hasWarnMessages(pattern)
hasInfoMessages(pattern)
hasVerboseMessages(pattern)
hasDebugMessages(pattern)
hasSillyMessages(pattern)
- isMessage: returns whether the supplied pattern matches or is equal to any messages logged at the level specified in the function name
isErrorMessages(pattern)
isWarnMessages(pattern)
isInfoMessages(pattern)
isVerboseMessages(pattern)
isDebugMessages(pattern)
isSillyMessages(pattern)
- getMessages: returns all messages logged at the level specified in function name, optionally matching a pattern
Contributing
Please fork and pull request against upstream master on a feature branch.
Provide unit tests in the test
directory.
Running Unit Tests
$ npm test