UNPKG

3.59 kBJavaScriptView Raw
1// Copyright (c) 2015 Uber Technologies, Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and associated documentation files (the "Software"), to deal
5// in the Software without restriction, including without limitation the rights
6// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7// copies of the Software, and to permit persons to whom the Software is
8// furnished to do so, subject to the following conditions:
9//
10// The above copyright notice and this permission notice shall be included in
11// all copies or substantial portions of the Software.
12//
13// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19// THE SOFTWARE.
20
21'use strict';
22
23var Buffer = require('buffer').Buffer;
24var test = require('tape');
25
26var captureStdio = require('./lib/capture-stdio.js');
27var ConsoleLogger = require('./lib/console-logger.js');
28var FileLogger = require('./lib/file-logger.js');
29var SentryLogger = require('./lib/sentry-logger.js');
30var KafkaLogger = require('./lib/kafka-logger.js');
31
32test('writing a buffer object (console)', function t(assert) {
33 var logger = ConsoleLogger();
34
35 var meta = allocBufferMeta();
36
37 assert.ok(captureStdio('info: cool story buf=b2ggaGk', function log() {
38 logger.info('cool story', meta, function cb(err) {
39 assert.ifError(err);
40
41 logger.destroy();
42 assert.end();
43 });
44 }));
45});
46
47test('writing a buffer object (disk)', function t(assert) {
48 var logger = FileLogger();
49
50 var meta = allocBufferMeta();
51
52 logger.info('cool story', meta, function log(err) {
53 assert.ifError(err);
54
55 logger.readFile(function onFile(err, buf) {
56 assert.ifError(err);
57
58 assert.ok(buf.indexOf('info: cool story buf=b2ggaGk') !== -1);
59
60 logger.destroy();
61 assert.end();
62 });
63 });
64});
65
66test('writing a buffer object (sentry)', function t(assert) {
67 var messages = [];
68 var logger = SentryLogger(function listener(msg) {
69 messages.push(msg);
70
71 if (messages.length === 1) {
72 onLogged();
73 }
74 });
75
76 var meta = allocBufferMeta();
77
78 logger.error('cool story', meta);
79
80 function onLogged() {
81 var msg = messages[0];
82
83 assert.ok(msg.message.indexOf('cool story') !== -1);
84
85 logger.destroy();
86 assert.end();
87 }
88});
89
90test('writing a buffer object (kafka)', function t(assert) {
91 var messages = [];
92 var logger = KafkaLogger(function listener(err, msg) {
93 assert.ifError(err, 'no unexpected server error');
94 messages.push(msg);
95
96 if (messages.length === 1) {
97 onLogged();
98 }
99 });
100
101 var meta = allocBufferMeta();
102
103 logger.info('cool story', meta);
104
105 function onLogged() {
106 var msg = messages[0];
107
108 var payload = msg.messages[0].payload;
109
110 assert.ok(payload.msg.indexOf('cool story') !== -1);
111
112 logger.destroy();
113 assert.end();
114 }
115});
116
117function allocBufferMeta() {
118 var meta = {};
119 meta.buf = new Buffer('oh hi');
120 meta.ohWhat = {
121 someBuf: new Buffer('oh wat')
122 };
123
124 return meta;
125}