From 970c7a8caa7a91a3ee7895b85b54de7f6ed11b9f Mon Sep 17 00:00:00 2001
From: Peter Jaszkowiak
Date: Tue, 9 May 2017 22:20:40 -0600
Subject: [PATCH] Defer winston logging until after tests
---
test/defer-logger.js | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 test/defer-logger.js
diff --git a/test/defer-logger.js b/test/defer-logger.js
new file mode 100644
index 0000000000..3ddb9de45c
--- /dev/null
+++ b/test/defer-logger.js
@@ -0,0 +1,40 @@
+'use strict';
+
+var util = require('util');
+var winston = require('winston');
+
+function DeferLogger(options) {
+ options = options || {};
+
+ this.name = 'DeferLogger';
+ this.level = options.level || 'info';
+
+ this.logged = options.logged;
+}
+
+util.inherits(DeferLogger, winston.Transport);
+
+DeferLogger.prototype.log = function log(level, msg, meta, callback) {
+ this.logged.push([level, msg, meta]);
+ callback(null, true);
+};
+
+var winstonLogged = [];
+
+before(function () {
+ // defer winston logs until the end
+ winston.remove(winston.transports.Console);
+
+ winston.add(DeferLogger, {
+ logged: winstonLogged,
+ });
+});
+
+after(function () {
+ console.log('\n\n');
+
+ var con = new winston.transports.Console();
+ winstonLogged.forEach(function (args) {
+ con.log(args[0], args[1], args[2], function () {});
+ });
+});