diff --git a/lib/log.js b/lib/log.js index d6285b90b..1659b9e11 100644 --- a/lib/log.js +++ b/lib/log.js @@ -76,8 +76,10 @@ Lug.prototype.activityEvent = function(event, request, data) { if (request.headers['user-agent']) { info.userAgent = request.headers['user-agent'] } - if (request.payload && request.payload.service) { - info.service = request.payload.service + try { + // request.payload and request.query are not always set in the unit tests + info.service = request.payload.service || request.query.service + } catch (err) { } Object.keys(data).forEach(function (key) { info[key] = data[key] diff --git a/test/local/log_tests.js b/test/local/log_tests.js index b14c27815..9356c95f2 100644 --- a/test/local/log_tests.js +++ b/test/local/log_tests.js @@ -169,6 +169,39 @@ test( } ) +test( + 'log.activityEvent with service query parameter', + function (t) { + log.activityEvent('foo', { + headers: {}, + payload: {}, + query: { + service: 'wibble' + } + }, { + uid: 'bar' + }) + + t.equal(logger.info.callCount, 1, 'logger.info was called once') + var args = logger.info.args[0] + t.equal(Object.keys(args[1]).length, 3, 'second argument had three properties') + t.equal(args[1].service, 'wibble', 'service property was correct') + + t.equal(statsd.write.callCount, 1, 'statsd.write was called once') + t.equal(statsd.write.args[0][0], args[1], 'statsd.write argument was correct') + + t.equal(logger.debug.callCount, 0, 'logger.debug was not called') + t.equal(logger.error.callCount, 0, 'logger.error was not called') + t.equal(logger.critical.callCount, 0, 'logger.critical was not called') + t.equal(logger.warn.callCount, 0, 'logger.warn was not called') + + t.end() + + logger.info.reset() + statsd.write.reset() + } +) + test( 'log.activityEvent with extra data', function (t) {