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