crave
Version:
Structure a node project your way with the ability to require models, controllers, or any file dynamically.
152 lines (116 loc) • 3.93 kB
JavaScript
// Require modules and libs.
var assert = require("assert"),
Log = require("../../libs/log.js"),
should = require("should"),
_ = require("lodash");
var debug = (process.env.CRAVE_DEBUG && (process.env.CRAVE_DEBUG === true || process.env.CRAVE_DEBUG.toLowerCase() === "true")) ? true : false,
trace = (process.env.CRAVE_TRACE && (process.env.CRAVE_TRACE === true || process.env.CRAVE_TRACE.toLowerCase() === "true")) ? true : false,
error = (process.env.CRAVE_ERROR && (process.env.CRAVE_ERROR === false || process.env.CRAVE_ERROR.toLowerCase() === "false")) ? false : true;
/*
function doesLogMessage(method, value, message, cb) {
var oldLog = console.log.apply,
result = false;
console.log.apply = function(s) {
if (s == message) {
result = true;
}
//cb(undefined, result);
};
method(value);
console.log.apply = oldLog;
return result;
}*/
describe('Log', function() {
it('constructor should initalize default attributes properly', function() {
var log = new Log();
log.should.be.ok;
log.debug.should.be.eql(debug);
log.trace.should.be.eql(trace);
log.error.should.be.eql(error);
});
it('constructor should initalize it\'s attributes properly', function() {
var log = new Log(true, true, false);
log.should.be.ok;
log.debug.should.be.true;
log.trace.should.be.true;
log.error.should.be.false;
});
it('method setLogMode() should reinitalize attributes properly', function() {
var log = new Log(true, true, true);
log.should.be.ok;
log.debug.should.be.true;
log.trace.should.be.true;
log.error.should.be.true;
log.setLogMode(false, false, false);
log.should.be.ok;
log.debug.should.be.false;
log.trace.should.be.false;
log.error.should.be.false;
});
it('an error message when an log.e is called and config.error is true', function() {
var consoleLog = console.log,
log = new Log(true, true, true),
value;
console.log = function(message) {
value = message;
}
log.e("test error");
console.log = consoleLog;
assert.equal("[Crave Error]: test error", value);
});
it('nothing when log.e is called and config.error is false', function() {
var consoleLog = console.log,
log = new Log(true, true, false),
value;
console.log = function(message) {
value = message;
}
log.e("test error");
console.log = consoleLog;
assert.equal(undefined, value);
});
it('a trace message when log.t is called and config.trace is true', function() {
var consoleLog = console.log,
log = new Log(true, true, true),
value;
console.log = function(message) {
value = message;
}
log.t("test trace");
console.log = consoleLog;
assert.equal("[Crave Trace]: test trace", value);
});
it('nothing when log.t is called and config.trace is false', function() {
var consoleLog = console.log,
log = new Log(true, false, true),
value;
console.log = function(message) {
value = message;
}
log.t("test error");
console.log = consoleLog;
assert.equal(undefined, value);
});
it('a debug message when log.d is called and config.debug is true', function() {
var consoleLog = console.log,
log = new Log(true, true, true),
value;
console.log = function(message) {
value = message;
}
log.d("test debug");
console.log = consoleLog;
assert.equal("[Crave Debug]: test debug", value);
});
it('nothing when log.d is called and config.debug is false', function() {
var consoleLog = console.log,
log = new Log(false, true, true),
value;
console.log = function(message) {
value = message;
}
log.d("test debug");
console.log = consoleLog;
assert.equal(undefined, value);
});
});