github.com/cloudcredo/cloudrocker@v0.0.0-20160108110610-1320f8cc2dfd/sample-apps/node/node_modules/logfmt/test/namespace_test.js (about) 1 var logfmt = require('../logfmt'), 2 assert = require('assert'); 3 4 var OutStream = require('./outstream'); 5 6 suite('logfmt.namespace', function() { 7 test('returns a logfmt', function(){ 8 var logger1 = logfmt.namespace(); 9 var logfmt2 = new logfmt(); 10 11 for(var prop in logfmt2){ 12 assert(logger1[prop]); 13 } 14 }) 15 16 test("does not modify data passed in", function(){ 17 var logfmt2 = logfmt.namespace({ns: 'logfmt'}); 18 var mock_sink = new OutStream; 19 var data = {foo: 'bar', a: 14} 20 logfmt2.log(data, mock_sink); 21 assert.deepEqual(data, {foo: 'bar', a: 14}); 22 }) 23 24 test("includes data passed in on all log lines", function(){ 25 var logfmt2 = logfmt.namespace({ns: 'logfmt'}); 26 var mock_sink = new OutStream; 27 var data = {foo: 'bar', a: 14} 28 logfmt2.log(data, mock_sink); 29 assert.equal("ns=logfmt foo=bar a=14\n", mock_sink.logline) 30 logfmt2.log({}, mock_sink); 31 assert.equal("ns=logfmt\n", mock_sink.logline) 32 logfmt2.log(data, mock_sink); 33 assert.equal("ns=logfmt foo=bar a=14\n", mock_sink.logline) 34 }) 35 36 test("can chain namespace calls", function(){ 37 var logfmt2 = logfmt.namespace({ns: 'logfmt'}) 38 .namespace({thing: 'data'}); 39 40 var logger = logfmt2.time(); 41 var mock_sink = new OutStream; 42 logger.log({}, mock_sink); 43 var actual = mock_sink.logline; 44 assert(/^ns=logfmt thing=data elapsed=\dms\n$/.test(actual), actual) 45 }) 46 })