UNPKG

payos

Version:

108 lines (89 loc) 2.87 kB
/* * helpers.js: Test helpers for winston * * (C) 2010 Charlie Robbins * MIT LICENSE * */ require.paths.unshift(require('path').join(__dirname, '..', 'lib')); var fs = require('fs'), util = require('util'), path = require('path'), vows = require('vows'), assert = require('assert'), winston = require('winston'), loggly = require('loggly') var helpers = exports; helpers.loadConfig = function () { try { if (helpers.config) return helpers.config; var configFile = path.join(__dirname, 'test-config.json'), stats = fs.statSync(configFile) config = JSON.parse(fs.readFileSync(configFile).toString()); helpers.config = config; return config; } catch (ex) { util.puts('Config file test-config.json must be created with valid data before running tests'); process.exit(0); } }; helpers.size = function(obj) { var size = 0, key; for (key in obj) { if (obj.hasOwnProperty(key)) size++; } return size; }; helpers.assertLogger = function (logger, level) { assert.instanceOf(logger, winston.Logger); assert.isFunction(logger.log); assert.isFunction(logger.add); assert.isFunction(logger.remove); assert.equal(logger.level, level || "info"); Object.keys(logger.levels).forEach(function (method) { assert.isFunction(logger[method]); }); }; helpers.assertConsole = function (transport) { assert.instanceOf(transport, winston.transports.Console); assert.isFunction(transport.log); }; helpers.assertFile = function (transport) { assert.instanceOf(transport, winston.transports.File); assert.isFunction(transport.log); } helpers.assertLoggly = function (transport) { assert.instanceOf(transport, winston.transports.Loggly); assert.isFunction(transport.log); }; helpers.assertRiak = function (transport) { assert.instanceOf(transport, winston.transports.Riak); assert.isFunction(transport.log); }; helpers.testNpmLevels = function (transport, assertMsg, assertFn) { return helpers.testLevels(winston.config.npm.levels, transport, assertMsg, assertFn); }; helpers.testSyslogLevels = function (transport, assertMsg, assertFn) { return helpers.testLevels(winston.config.syslog.levels, transport, assertMsg, assertFn); }; helpers.testLevels = function (levels, transport, assertMsg, assertFn) { var tests = {}; Object.keys(levels).forEach(function (level) { var test = { topic: function () { transport.log(level, 'test message', {}, this.callback.bind(this, null)); } }; test[assertMsg] = assertFn; tests['with the ' + level + ' level'] = test; }); var test = { topic: function () { transport.log('info', 'test message', { metadata: true }, this.callback.bind(this, null)); } }; test[assertMsg] = assertFn; tests['when passed metadata'] = test; return tests; };