fixed the nolog tests

This commit is contained in:
Gareth Jones
2012-05-09 16:40:27 +10:00
parent 613a077a61
commit 61078e88ef
3 changed files with 85 additions and 86 deletions
+2 -2
View File
@@ -45,8 +45,8 @@ function getLogger(logger4js, options) {
// mount safety // mount safety
if (req._logging) return next(); if (req._logging) return next();
// nologs // nologs
if(nolog && nolog.test(req.originalUrl)) return next(); if (nolog && nolog.test(req.originalUrl)) return next();
if (thislogger.isLevelEnabled(level)) { if (thislogger.isLevelEnabled(level)) {
+8 -9
View File
@@ -12,18 +12,17 @@ function Level(level, levelStr) {
*/ */
function toLevel(sArg, defaultLevel) { function toLevel(sArg, defaultLevel) {
if (sArg === null) { if (!sArg) {
return defaultLevel; return defaultLevel;
} }
if (typeof sArg == "string") { if (typeof sArg == "string") {
var s = sArg.toUpperCase(); var s = sArg.toUpperCase();
if (module.exports[s]) { if (module.exports[s]) {
return module.exports[s]; return module.exports[s];
} } else {
else { return defaultLevel;
return defaultLevel; }
}
} }
return toLevel(sArg.toString()); return toLevel(sArg.toString());
+67 -67
View File
@@ -40,83 +40,83 @@ function MockResponse(statusCode) {
vows.describe('log4js connect logger').addBatch({ vows.describe('log4js connect logger').addBatch({
'getConnectLoggerModule': { 'getConnectLoggerModule': {
topic: function() { topic: function() {
var clm = require('../lib/connect-logger'); var clm = require('../lib/connect-logger');
return clm; return clm;
},
'should return a "connect logger" factory' : function(clm) {
assert.isObject(clm);
},
'nolog String' : {
topic: function(clm) {
var ml = new MockLogger();
var cl = clm.connectLogger(ml, {nolog: "\\.gif"});
return {cl: cl, ml: ml};
}, },
'check unmatch url request': { 'should return a "connect logger" factory' : function(clm) {
topic: function(d){ assert.isObject(clm);
var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif },
var res = new MockResponse(200);
d.cl(req, res, function() { });
res.end('chunk', 'encoding');
return d.ml.messages;
}
, 'check message': function(messages){
assert.isArray(messages);
assert.equal(messages.length, 1);
assert.equal(messages[0].level, levels.INFO);
assert.include(messages[0].message, 'GET');
assert.include(messages[0].message, 'http://url');
assert.include(messages[0].message, 'my.remote.addr');
assert.include(messages[0].message, '200');
messages.pop();
}
},
'check match url request': { 'nolog String' : {
topic: function(clm) {
var ml = new MockLogger();
var cl = clm.connectLogger(ml, { nolog: "\\.gif" });
return {cl: cl, ml: ml};
},
'check unmatch url request': {
topic: function(d){
var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif
var res = new MockResponse(200);
d.cl(req, res, function() { });
res.end('chunk', 'encoding');
return d.ml.messages;
}
, 'check message': function(messages){
assert.isArray(messages);
assert.equal(messages.length, 1);
assert.equal(messages[0].level, levels.INFO);
assert.include(messages[0].message, 'GET');
assert.include(messages[0].message, 'http://url');
assert.include(messages[0].message, 'my.remote.addr');
assert.include(messages[0].message, '200');
messages.pop();
}
},
'check match url request': {
topic: function(d) { topic: function(d) {
var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.gif'); // gif var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.gif'); // gif
var res = new MockResponse(200); var res = new MockResponse(200);
d.cl(req, res, function() { }); d.cl(req, res, function() { });
res.end('chunk', 'encoding'); res.end('chunk', 'encoding');
return d.ml.messages; return d.ml.messages;
} }
, 'check message': function(messages) { , 'check message': function(messages) {
assert.isArray(messages); assert.isArray(messages);
assert.equal(messages.length, 0); assert.equal(messages.length, 0);
} }
} }
}, },
'nolog Strings' : { 'nolog Strings' : {
topic: function(clm) { topic: function(clm) {
var ml = new MockLogger(); var ml = new MockLogger();
var cl = clm.connectLogger(ml, {nolog: "\\.gif|\\.jpe?g"}); var cl = clm.connectLogger(ml, {nolog: "\\.gif|\\.jpe?g"});
return {cl: cl, ml: ml}; return {cl: cl, ml: ml};
}, },
'check unmatch url request (png)': { 'check unmatch url request (png)': {
topic: function(d){ topic: function(d){
var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif
var res = new MockResponse(200); var res = new MockResponse(200);
d.cl(req, res, function() { }); d.cl(req, res, function() { });
res.end('chunk', 'encoding'); res.end('chunk', 'encoding');
return d.ml.messages; return d.ml.messages;
} }
, 'check message': function(messages){ , 'check message': function(messages){
assert.isArray(messages); assert.isArray(messages);
assert.equal(messages.length, 1); assert.equal(messages.length, 1);
assert.equal(messages[0].level, levels.INFO); assert.equal(messages[0].level, levels.INFO);
assert.include(messages[0].message, 'GET'); assert.include(messages[0].message, 'GET');
assert.include(messages[0].message, 'http://url'); assert.include(messages[0].message, 'http://url');
assert.include(messages[0].message, 'my.remote.addr'); assert.include(messages[0].message, 'my.remote.addr');
assert.include(messages[0].message, '200'); assert.include(messages[0].message, '200');
messages.pop(); messages.pop();
} }
}, },
'check match url request (gif)': { 'check match url request (gif)': {
topic: function(d) { topic: function(d) {