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  })