expresser
Version:
A ready to use Node.js web app wrapper, built on top of Express.
122 lines (97 loc) • 4.05 kB
JavaScript
// TEST: LOGGER
require("coffee-script/register");
var chai = require("chai");
chai.should();
describe("Logger Tests", function() {
var env = process.env;
if (!env.NODE_ENV || env.NODE_ENV == "") env.NODE_ENV = "test";
var settings = require("../lib/settings.coffee");
settings.loadFromJson("../plugins/logger-file/settings.default.json");
settings.loadFromJson("../plugins/logger-logentries/settings.default.json");
settings.loadFromJson("../plugins/logger-loggly/settings.default.json");
settings.loadFromJson("settings.test.json");
if (env["LOGENTRIES_TOKEN"]) {
settings.logger.logentries.token = env["LOGENTRIES_TOKEN"];
}
if (env["LOGGLY_TOKEN"]) {
settings.logger.loggly.token = env["LOGGLY_TOKEN"];
}
if (env["LOGGLY_SUBDOMAIN"]) {
settings.logger.loggly.subdomain = env["LOGGLY_SUBDOMAIN"];
}
var logger = null;
var loggerFile = null;
var loggerLogentries = null;
var loggerLoggly = null;
var transportFile = null;
var transportLogentries = null;
var transportLoggly = null;
var helperLogOnSuccess = function(done) {
return function(result) {
done();
};
};
var helperLogOnError = function(done) {
return function(err) {
done(err);
};
};
// TESTS STARTS HERE!!!
// ----------------------------------------------------------------------------------
before(function(){
logger = require("../lib/logger.coffee");
loggerFile = require("../plugins/logger-file/index.coffee");
loggerFile.expresser = require("../index.coffee");
loggerFile.expresser.events = require("../lib/events.coffee");
loggerFile.expresser.logger = require("../lib/logger.coffee");
loggerLogentries = require("../plugins/logger-logentries/index.coffee");
loggerLogentries.expresser = require("../index.coffee");
loggerLogentries.expresser.events = require("../lib/events.coffee");
loggerLogentries.expresser.logger = require("../lib/logger.coffee");
loggerLoggly = require("../plugins/logger-loggly/index.coffee");
loggerLoggly.expresser = require("../index.coffee");
loggerLoggly.expresser.events = require("../lib/events.coffee");
loggerLoggly.expresser.logger = require("../lib/logger.coffee");
});
it("Has settings defined", function() {
settings.should.have.property("logger");
settings.logger.should.have.property("file");
settings.logger.should.have.property("logentries");
settings.logger.should.have.property("loggly");
});
it("Inits", function() {
logger.init();
});
it("Save log to file", function(done) {
transportFile = loggerFile.init({
onLogSuccess: helperLogOnSuccess(done),
onLogError: helperLogOnError(done)
});
transportFile.info("Expresser local disk log test.", new Date());
transportFile.flush();
});
if (settings.logger.logentries.token) {
it("Send log to Logentries", function(done) {
this.timeout(10000);
transportLogentries = loggerLogentries.init({
onLogSuccess: helperLogOnSuccess(done),
onLogError: helperLogOnError(done)
});
transportLogentries.info("Expresser Logentries log test.", new Date());
});
} else {
it.skip("Send log to Logentries (skipped, no token set)");
}
if (settings.logger.logentries.token && settings.logger.loggly.subdomain) {
it("Send log to Loggly", function(done) {
this.timeout(10000);
transportLoggly = loggerLoggly.init({
onLogSuccess: helperLogOnSuccess(done),
onLogError: helperLogOnError(done)
});
transportLoggly.info("Expresser Loggly log test.", new Date());
});
} else {
it.skip("Send log to Loggly (skipped, no token or subdomain set)");
}
});