'use strict';
-const sinon = require('sinon'); // eslint-disable-line node/no-unpublished-require
-
-const nop = () => { /* */ };
-
class StubLogger {
- constructor(verbose = false) {
+ constructor(sinon, verbose = false) {
+ this.sinon = sinon;
const logger = (process.env.VERBOSE_TESTS || verbose) ? console : StubLogger._nullLogger;
Object.keys(StubLogger._nullLogger).forEach((level) => {
this[level] = logger[level]; // eslint-disable-line security/detect-object-injection
+ this.sinon.spy(this, level);
});
}
static get _nullLogger() {
return {
- error: nop,
- warn: nop,
- info: nop,
- log: nop,
- debug: nop,
+ error: () => undefined,
+ warn: () => undefined,
+ info: () => undefined,
+ log: () => undefined,
+ debug: () => undefined,
};
}
}
_reset() {
- Object.keys(StubLogger._nullLogger).forEach((level) => sinon.spy(this, level));
+ StubLogger._levels.forEach((level) => this[level].resetHistory()); // eslint-disable-line security/detect-object-injection
}
}