8000 fix(test): moved nolog test to tap · xcj-coding/log4js-node@9e0c527 · GitHub
[go: up one dir, main page]

Skip to content

Commit 9e0c527

Browse files
author
Gareth Jones
committed
fix(test): moved nolog test to tap
1 parent 8969d13 commit 9e0c527

File tree

2 files changed

+225
-307
lines changed

2 files changed

+225
-307
lines changed

test/tap/nolog-test.js

Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
'use strict';
2+
3+
const test = require('tap').test;
4+
const EE = require('events').EventEmitter;
5+
const levels = require('../../lib/levels');
6+
7+
class MockLogger {
8+
constructor() {
9+
this.messages = [];
10+
this.level = levels.TRACE;
11+
12+
this.log = function (level, message) {
13+
this.messages.push({ level: level, message: message });
14+
};
15+
16+
this.isLevelEnabled = function (level) {
17+
return level.isGreaterThanOrEqualTo(this.level);
18+
};
19+
}
20+
}
21+
22+
function MockRequest(remoteAddr, method, originalUrl) {
23+
this.socket = { remoteAddress: remoteAddr };
24+
this.originalUrl = originalUrl;
25+
this.method = method;
26+
this.httpVersionMajor = '5';
27+
this.httpVersionMinor = '0';
28+
this.headers = {};
29+
}
30+
31+
class MockResponse extends EE {
32+
constructor(statusCode) {
33+
super();
34+
const r = this;
35+
this.statusCode = statusCode;
36+
37+
this.end = function () {
38+
r.emit('finish');
39+
};
40+
}
41+
}
42+
43+
test('log4js connect logger', (batch) => {
44+
const clm = require('../../lib/connect-logger');
45+
46+
batch.test('with nolog config', (t) => {
47+
const ml = new MockLogger();
48+
const cl = clm.connectLogger(ml, { nolog: '\\.gif' });
49+
50+
t.beforeEach((done) => { ml.messages = []; done(); });
51+
52+
t.test('check unmatch url request', (assert) => {
53+
const messages = ml.messages;
54+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif
55+
const res = new MockResponse(200);
56+
cl(req, res, () => { });
57+
res.end('chunk', 'encoding');
58+
59+
assert.type(messages, 'Array');
60+
assert.equal(messages.length, 1);
61+
assert.ok(levels.INFO.isEqualTo(messages[0].level));
62+
assert.include(messages[0].message, 'GET');
63+
assert.include(messages[0].message, 'http://url');
64+
assert.include(messages[0].message, 'my.remote.addr');
65+
assert.include(messages[0].message, '200');
66+
assert.end();
67+
});
68+
69+
t.test('check match url request', (assert) => {
70+
const messages = ml.messages;
71+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.gif'); // gif
72+
const res = new MockResponse(200);
73+
cl(req, res, () => {});
74+
res.end('chunk', 'encoding');
75+
76+
assert.type(messages, 'Array');
77+
assert.equal(messages.length, 0);
78+
assert.end();
79+
});
80+
t.end();
81+
});
82+
83+
batch.test('nolog Strings', (t) => {
84+
const ml = new MockLogger();
85+
const cl = clm.connectLogger(ml, { nolog: '\\.gif|\\.jpe?g' });
86+
87+
t.beforeEach((done) => { ml.messages = []; done(); });
88+
89+
t.test('check unmatch url request (png)', (assert) => {
90+
const messages = ml.messages;
91+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif
92+
const res = new MockResponse(200);
93+
cl(req, res, () => { });
94+
res.end('chunk', 'encoding');
95+
96+
assert.equal(messages.length, 1);
97+
assert.ok(levels.INFO.isEqualTo(messages[0].level));
98+
assert.include(messages[0].message, 'GET');
99+
assert.include(messages[0].message, 'http://url');
100+
assert.include(messages[0].message, 'my.remote.addr');
101+
assert.include(messages[0].message, '200');
102+
assert.end();
103+
});
104+
105+
t.test('check match url request (gif)', (assert) => {
106+
const messages = ml.messages;
107+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.gif');
108+
const res = new MockResponse(200);
109+
cl(req, res, () => { });
110+
res.end('chunk', 'encoding');
111+
112+
assert.equal(messages.length, 0);
113+
assert.end();
114+
});
115+
116+
t.test('check match url request (jpeg)', (assert) => {
117+
const messages = ml.messages;
118+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.jpeg');
119+
const res = new MockResponse(200);
120+
cl(req, res, () => { });
121+
res.end('chunk', 'encoding');
122+
123+
assert.equal(messages.length, 0);
124+
assert.end();
125+
});
126+
127+
t.end();
128+
});
129+
130+
batch.test('nolog Array<String>', (t) => {
131+
const ml = new MockLogger();
132+
const cl = clm.connectLogger(ml, { nolog: ['\\.gif', '\\.jpe?g'] });
133+
134+
t.beforeEach((done) => { ml.messages = []; done(); });
135+
136+
t.test('check unmatch url request (png)', (assert) => {
137+
const messages = ml.messages;
138+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif
139+
const res = new MockResponse(200);
140+
cl(req, res, () => { });
141+
res.end('chunk', 'encoding');
142+
143+
assert.equal(messages.length, 1);
144+
assert.ok(levels.INFO.isEqualTo(messages[0].level));
145+
assert.include(messages[0].message, 'GET');< 10000 /div>
146+
assert.include(messages[0].message, 'http://url');
147+
assert.include(messages[0].message, 'my.remote.addr');
148+
assert.include(messages[0].message, '200');
149+
assert.end();
150+
});
151+
152+
t.test('check match url request (gif)', (assert) => {
153+
const messages = ml.messages;
154+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.gif'); // gif
155+
const res = new MockResponse(200);
156+
cl(req, res, () => { });
157+
res.end('chunk', 'encoding');
158+
159+
assert.equal(messages.length, 0);
160+
assert.end();
161+
});
162+
163+
t.test('check match url request (jpeg)', (assert) => {
164+
const messages = ml.messages;
165+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.jpeg'); // gif
166+
const res = new MockResponse(200);
167+
cl(req, res, () => { });
168+
res.end('chunk', 'encoding');
169+
170+
assert.equal(messages.length, 0);
171+
assert.end();
172+
});
173+
174+
t.end();
175+
});
176+
177+
batch.test('nolog RegExp', (t) => {
178+
const ml = new MockLogger();
179+
const cl = clm.connectLogger(ml, { nolog: /\.gif|\.jpe?g/ });
180+
181+
t.beforeEach((done) => { ml.messages = []; done(); });
182+
183+
t.test('check unmatch url request (png)', (assert) => {
184+
const messages = ml.messages;
185+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif
186+
const res = new MockResponse(200);
187+
cl(req, res, () => { });
188+
res.end('chunk', 'encoding');
189+
190+
assert.equal(messages.length, 1);
191+
assert.ok(levels.INFO.isEqualTo(messages[0].level));
192+
assert.include(messages[0].message, 'GET');
193+
assert.include(messages[0].message, 'http://url');
194+
assert.include(messages[0].message, 'my.remote.addr');
195+
assert.include(messages[0].message, '200');
196+
assert.end();
197+
});
198+
199+
t.test('check match url request (gif)', (assert) => {
200+
const messages = ml.messages;
201+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.gif'); // gif
202+
const res = new MockResponse(200);
203+
cl(req, res, () => {});
204+
res.end('chunk', 'encoding');
205+
206+
assert.equal(messages.length, 0);
207+
assert.end();
208+
});
209+
210+
t.test('check match url request (jpeg)', (assert) => {
211+
const messages = ml.messages;
212+
const req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.jpeg'); // gif
213+
const res = new MockResponse(200);
214+
cl(req, res, () => {});
215+
res.end('chunk', 'encoding');
216+
217+
assert.equal(messages.length, 0);
218+
assert.end();
219+
});
220+
221+
t.end();
222+
});
223+
224+
batch.end();
225+
});

0 commit comments

Comments
 (0)
0