Name: js-handler/node_modules/restify/node_modules/bunyan/test/buffer.test.js 
1:
/*
2:
 * Copyright (c) 2012 Trent Mick. All rights reserved.
3:
 * Copyright (c) 2012 Joyent Inc. All rights reserved.
4:
 *
5:
 * Test logging with (accidental) usage of buffers.
6:
 */
7:
 
8:
var util = require('util'),
9:
    inspect = util.inspect,
10:
    format = util.format;
11:
var bunyan = require('../lib/bunyan');
12:
 
13:
// node-tap API
14:
if (require.cache[__dirname + '/tap4nodeunit.js'])
15:
        delete require.cache[__dirname + '/tap4nodeunit.js'];
16:
var tap4nodeunit = require('./tap4nodeunit.js');
17:
var after = tap4nodeunit.after;
18:
var before = tap4nodeunit.before;
19:
var test = tap4nodeunit.test;
20:
 
21:
 
22:
 
23:
function Catcher() {
24:
    this.records = [];
25:
}
26:
Catcher.prototype.write = function (record) {
27:
    this.records.push(record);
28:
}
29:
 
30:
var catcher = new Catcher();
31:
var log = new bunyan.createLogger({
32:
    name: 'buffer.test',
33:
    streams: [
34:
        {
35:
            type: 'raw',
36:
            stream: catcher,
37:
            level: 'trace'
38:
        }
39:
    ]
40:
});
41:
 
42:
 
43:
test('log.info(BUFFER)', function (t) {
44:
    var b = new Buffer('foo');
45:
 
46:
    ['trace',
47:
     'debug',
48:
     'info',
49:
     'warn',
50:
     'error',
51:
     'fatal'].forEach(function (lvl) {
52:
        log[lvl].call(log, b);
53:
        var rec = catcher.records[catcher.records.length - 1];
54:
        t.equal(rec.msg, inspect(b),
55:
            format('log.%s msg is inspect(BUFFER)', lvl));
56:
        t.ok(rec['0'] === undefined,
57:
            'no "0" array index key in record: ' + inspect(rec['0']));
58:
        t.ok(rec['parent'] === undefined,
59:
            'no "parent" array index key in record: ' + inspect(rec['parent']));
60:
 
61:
        log[lvl].call(log, b, 'bar');
62:
        var rec = catcher.records[catcher.records.length - 1];
63:
        t.equal(rec.msg, inspect(b) + ' bar', format(
64:
            'log.%s(BUFFER, "bar") msg is inspect(BUFFER) + " bar"', lvl));
65:
    });
66:
 
67:
    t.end();
68:
});
69:
 
70:
 
71:
//test('log.info({buf: BUFFER})', function (t) {
72:
//  var b = new Buffer('foo');
73:
//
74:
//  // Really there isn't much Bunyan can do here. See
75:
//  // <https://github.com/joyent/node/issues/3905>. An unwelcome hack would
76:
//  // be to monkey-patch in Buffer.toJSON. Bletch.
77:
//  log.info({buf: b}, 'my message');
78:
//  var rec = catcher.records[catcher.records.length - 1];
79:
//
80:
//  t.end();
81:
//});