bump package version to 2.0.0
[squeep-test-helper] / lib / stub-logger.js
index 6df2b94f97e4d932f53d9afca1f300d4b6acc0be..c7ba5833091a65e2cf8c7d1840072ce956b6a18c 100644 (file)
@@ -1,24 +1,22 @@
 '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,
     };
   }
 
@@ -27,7 +25,7 @@ class StubLogger {
   }
 
   _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
   }
 }