UNPKG

ionic

Version:

A tool for creating and developing Ionic Framework mobile apps.

144 lines (139 loc) 5.14 kB
/* * 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'), util = require('util'), helpers = require('./helpers'); vows.describe('winston/logger/levels').addBatch({ "The winston logger": { topic: new (winston.Logger)({ transports: [ new (winston.transports.Console)() ] }), "the info() method": { "when passed metadata": { topic: function (logger) { logger.once('logging', this.callback); logger.info('test message', {foo: 'bar'}); }, "should have metadata object": function (transport, level, msg, meta) { assert.strictEqual(msg, 'test message'); assert.deepEqual(meta, {foo: 'bar'}); } } }, "when passed a string placeholder": { topic: function (logger) { logger.once('logging', this.callback); logger.info('test message %s', 'my string'); }, "should interpolate": function (transport, level, msg, meta) { assert.strictEqual(msg, 'test message my string'); }, }, "when passed a number placeholder": { topic: function (logger) { logger.once('logging', this.callback); logger.info('test message %d', 123); }, "should interpolate": function (transport, level, msg, meta) { assert.strictEqual(msg, 'test message 123'); }, }, "when passed a json placholder and an empty object": { topic: function (logger) { logger.once('logging', this.callback); logger.info('test message %j', {number: 123}, {}); }, "should interpolate": function (transport, level, msg, meta) { assert.strictEqual(msg, 'test message {"number":123}'); }, }, "when passed a escaped percent sign": { topic: function (logger) { logger.once('logging', this.callback); logger.info('test message %%', {number: 123}); }, "should not interpolate": function (transport, level, msg, meta) { assert.strictEqual(msg, util.format('test message %%')); assert.deepEqual(meta, {number: 123}); }, }, "when passed interpolation strings and a meta object": { topic: function (logger) { logger.once('logging', this.callback); logger.info('test message %s, %s', 'first', 'second' ,{number: 123}); }, "should interpolate and have a meta object": function (transport, level, msg, meta) { assert.strictEqual(msg, 'test message first, second'); assert.deepEqual(meta, {number: 123}); }, }, "when passed multiple strings and a meta object": { topic: function (logger) { logger.once('logging', this.callback); logger.info('test message', 'first', 'second' , {number: 123}); }, "should join and have a meta object": function (transport, level, msg, meta) { assert.strictEqual(msg, 'test message first second'); assert.deepEqual(meta, {number: 123}); }, }, "when passed interpolations strings, meta object and a callback": { topic: function (logger) { var that = this; logger.info('test message %s, %s', 'first', 'second' , {number: 123}, function(transport, level, msg, meta){ that.callback(transport, level, msg, meta) }); }, "should interpolate and have a meta object": function (transport, level, msg, meta) { assert.strictEqual(msg, 'test message first, second'); assert.deepEqual(meta, {number: 123}); }, }, "when passed multiple strings, a meta object and a callback": { topic: function (logger) { var that = this; logger.info('test message', 'first', 'second' , {number: 123}, function(transport, level, msg, meta){ that.callback(transport, level, msg, meta) }); }, "should join and have a meta object": function (transport, level, msg, meta) { assert.strictEqual(msg, 'test message first second'); assert.deepEqual(meta, {number: 123}); } }, "when custom levels are set": { "should not fail with 'RangeError: Maximum call stack size exceeded": function (logger) { var that = this; // Logging levels var customLevels = { levels: { none: 0, log: 1, } }; var logger = winston.loggers.add('hello243', { }); try { logger.setLevels(customLevels.levels); } catch (e) { assert.equal('Error', e.name); } try { logger.log('none', 'hi', function (err) { assert.ifError(err); }); } catch (e) { assert.ifError(e); } } } } }).export(module);