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 () {}); + }); +});