Skip to content

Commit 866abcc

Browse files
author
spalger
committed
[server/logging] add tests for log interceptor
1 parent a8eea58 commit 866abcc

2 files changed

Lines changed: 56 additions & 1 deletion

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import expect from 'expect.js';
2+
import { shuffle } from 'lodash';
3+
4+
import { LogInterceptor } from '../log_interceptor';
5+
6+
function stubEconnresetEvent() {
7+
const error = new Error();
8+
error.errno = 'ECONNRESET';
9+
10+
return {
11+
event: 'error',
12+
pid: 1234,
13+
timestamp: Date.now(),
14+
tags: ['error', 'client', 'connection'],
15+
data: error
16+
};
17+
}
18+
19+
function assertDowngraded(transformed) {
20+
expect(!!transformed).to.be(true);
21+
expect(transformed).to.have.property('event', 'log');
22+
expect(transformed).to.have.property('tags');
23+
expect(transformed.tags).to.not.contain('error');
24+
}
25+
26+
describe('server logging LogInterceptor', () => {
27+
describe('#downgradeIfEconnreset()', () => {
28+
it('transforms ECONNRESET events', () => {
29+
const interceptor = new LogInterceptor();
30+
const event = stubEconnresetEvent();
31+
assertDowngraded(interceptor.downgradeIfEconnreset(event));
32+
});
33+
34+
it('matches even when the tags are out of order', () => {
35+
const interceptor = new LogInterceptor();
36+
const event = stubEconnresetEvent();
37+
event.tags = shuffle(event.tags.slice(0));
38+
assertDowngraded(interceptor.downgradeIfEconnreset(event));
39+
});
40+
41+
it('ignores non ECONNRESET events', () => {
42+
const interceptor = new LogInterceptor();
43+
const event = stubEconnresetEvent();
44+
event.data.errno = 'not ECONNRESET';
45+
expect(interceptor.downgradeIfEconnreset(event)).to.be(null);
46+
});
47+
48+
it('ignores if tags are wrong', () => {
49+
const interceptor = new LogInterceptor();
50+
const event = stubEconnresetEvent();
51+
event.tags = ['different', 'tags'];
52+
expect(interceptor.downgradeIfEconnreset(event)).to.be(null);
53+
});
54+
});
55+
});

src/server/logging/log_interceptor.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export class LogInterceptor extends Stream.Transform {
2727
const isClientError = doTagsMatch(event, ['error', 'client', 'connection']);
2828
const isEconnreset = isClientError && get(event, 'data.errno') === 'ECONNRESET';
2929

30-
if (!isEconnreset) return false;
30+
if (!isEconnreset) return null;
3131

3232
return {
3333
event: 'log',

0 commit comments

Comments
 (0)