| /* |
| * log-rewriter-test.js: Tests for rewriting metadata in winston. |
| * |
| * (C) 2010 Charlie Robbins |
| * MIT LICENSE |
| * |
| */ |
| |
| var assert = require('assert'), |
| vows = require('vows'), |
| winston = require('../lib/winston'), |
| helpers = require('./helpers'); |
| |
| vows.describe('winston/logger/rewriter').addBatch({ |
| "An instance of winston.Logger": { |
| topic: new (winston.Logger)({transports: [ |
| new (winston.transports.Console)({ level: 'info' }) |
| ]}), |
| "the addRewriter() method": { |
| topic: function (logger) { |
| logger.addRewriter(function (level, msg, meta) { |
| meta.level = level; |
| meta.msg = msg; |
| meta.foo = 'bar'; |
| return meta; |
| }); |
| return logger; |
| }, |
| "should add the rewriter": function (logger) { |
| assert.equal(helpers.size(logger.rewriters), 1); |
| }, |
| "the log() method": { |
| topic: function (logger) { |
| logger.once('logging', this.callback); |
| logger.log('info', 'test message', {"a": "b"}); |
| }, |
| "should run the rewriter": function (transport, level, msg, meta) { |
| assert.equal(meta.a, 'b'); |
| assert.equal(meta.level, 'info'); |
| assert.equal(meta.msg, 'test message'); |
| assert.equal(meta.foo, 'bar'); |
| } |
| } |
| } |
| } |
| }).addBatch({ |
| "An instance of winston.Logger with explicit rewriter": { |
| topic: new (winston.Logger)({transports: [ |
| new (winston.transports.Console)({ level: 'info'}) |
| ], rewriters: [ |
| function (level, msg, meta) { |
| meta.level = level; |
| meta.msg = msg; |
| meta.foo = 'bar'; |
| return meta; |
| } |
| ]}), |
| "should add the rewriter": function (logger) { |
| assert.equal(helpers.size(logger.rewriters), 1); |
| }, |
| "the log() method": { |
| topic: function (logger) { |
| logger.once('logging', this.callback); |
| logger.log('info', 'test message', {"a": "b"}); |
| }, |
| "should run the rewriter": function (transport, level, msg, meta) { |
| assert.equal(meta.a, 'b'); |
| assert.equal(meta.level, 'info'); |
| assert.equal(meta.msg, 'test message'); |
| assert.equal(meta.foo, 'bar'); |
| } |
| } |
| } |
| }).addBatch({ |
| "An instance of winston.Logger with rewriters": { |
| topic: new (winston.Logger)({transports: [ |
| new (winston.transports.Console)({ level: 'info' }) |
| ], rewriters: [ |
| function (level, msg, meta) { |
| meta.numbers.push(1); |
| return meta; |
| }, |
| function (level, msg, meta) { |
| meta.numbers.push(2); |
| return meta; |
| } |
| ]}), |
| "the log() method": { |
| topic: function (logger) { |
| logger.once('logging', this.callback); |
| logger.log('info', 'test message', {"numbers": [0]}); |
| }, |
| "should run the rewriters in correct order": function (transport, level, msg, meta) { |
| assert.deepEqual(meta.numbers, [0, 1, 2]); |
| } |
| } |
| } |
| }).export(module); |