bump package version to 2.0.0
[squeep-test-helper] / lib / stub-logger.js
1 'use strict';
2
3 class StubLogger {
4 constructor(sinon, verbose = false) {
5 this.sinon = sinon;
6 const logger = (process.env.VERBOSE_TESTS || verbose) ? console : StubLogger._nullLogger;
7 Object.keys(StubLogger._nullLogger).forEach((level) => {
8 this[level] = logger[level]; // eslint-disable-line security/detect-object-injection
9 this.sinon.spy(this, level);
10 });
11 }
12
13 static get _nullLogger() {
14 return {
15 error: () => undefined,
16 warn: () => undefined,
17 info: () => undefined,
18 log: () => undefined,
19 debug: () => undefined,
20 };
21 }
22
23 static get _levels() {
24 return Object.keys(StubLogger._nullLogger);
25 }
26
27 _reset() {
28 StubLogger._levels.forEach((level) => this[level].resetHistory()); // eslint-disable-line security/detect-object-injection
29 }
30 }
31
32 module.exports = StubLogger;