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