kayvee 3.16.0 → 3.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +124 -0
- package/.github/workflows/notify-ci-status.yml +20 -0
- package/.nvmrc +1 -1
- package/.prettierrc.json +1 -0
- package/Makefile +20 -4
- package/build/lib/kayvee.js +13 -17
- package/build/lib/logger/logger.js +84 -76
- package/build/lib/middleware.js +62 -89
- package/build/lib/router/index.js +61 -63
- package/build/package.json +16 -8
- package/build/test/context_logger.js +36 -44
- package/build/test/kayvee.js +16 -16
- package/build/test/logger_test.js +113 -102
- package/build/test/middleware.js +90 -235
- package/build/test/router.js +238 -94
- package/lib/kayvee.ts +19 -7
- package/lib/logger/logger.ts +101 -47
- package/lib/middleware.ts +31 -31
- package/lib/router/index.ts +18 -13
- package/package.json +16 -8
- package/test/context_logger.ts +7 -7
- package/test/kayvee.ts +16 -7
- package/test/logger_test.ts +24 -27
- package/test/middleware.ts +88 -222
- package/test/router.ts +247 -176
- package/tsconfig.json +1 -1
- package/.eslintrc.yml +0 -47
- package/tsd.json +0 -15
- package/tslint.json +0 -134
- package/typings/globals/es6-shim/index.d.ts +0 -666
- package/typings/globals/es6-shim/typings.json +0 -8
- package/typings/index.d.ts +0 -1
- package/typings/mocha/mocha.d.ts +0 -236
- package/typings/node/node.d.ts +0 -2340
- package/typings/tsd.d.ts +0 -2
- package/typings.json +0 -5
package/build/test/middleware.js
CHANGED
|
@@ -18,13 +18,13 @@ kayee_logger.setGlobalRouting(path.join(__dirname, "/kvconfig.yml"));
|
|
|
18
18
|
function afterTest(count, callback) {
|
|
19
19
|
var args = new Array(3);
|
|
20
20
|
var i = 0;
|
|
21
|
-
return
|
|
22
|
-
assert.ok(i++ < count,
|
|
21
|
+
return (err, arg1, arg2) => {
|
|
22
|
+
assert.ok(i++ < count, `callback called ${count} times`);
|
|
23
23
|
args[0] = args[0] || err;
|
|
24
24
|
args[1] = args[1] || arg1;
|
|
25
25
|
args[2] = args[2] || arg2;
|
|
26
26
|
if (count === i) {
|
|
27
|
-
callback
|
|
27
|
+
callback(...args);
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
}
|
|
@@ -39,10 +39,10 @@ function createServer(server_type, clever_options, morgan_options, fn) {
|
|
|
39
39
|
var middle = fn || noopMiddleware;
|
|
40
40
|
var server = null;
|
|
41
41
|
if (server_type === "http") {
|
|
42
|
-
server = http.createServer(
|
|
43
|
-
logger(req, res,
|
|
42
|
+
server = http.createServer((req, res) => {
|
|
43
|
+
logger(req, res, (err) => {
|
|
44
44
|
// allow req, res alterations
|
|
45
|
-
middle(req, res,
|
|
45
|
+
middle(req, res, () => {
|
|
46
46
|
if (err) {
|
|
47
47
|
res.statusCode = 500;
|
|
48
48
|
res.end(err.message);
|
|
@@ -57,26 +57,26 @@ function createServer(server_type, clever_options, morgan_options, fn) {
|
|
|
57
57
|
else if (server_type === "express") {
|
|
58
58
|
var app = express();
|
|
59
59
|
app.use(logger);
|
|
60
|
-
app.use(express.static(__dirname
|
|
61
|
-
app.get("*",
|
|
60
|
+
app.use(express.static(`${__dirname}/static`));
|
|
61
|
+
app.get("*", (req, res) => {
|
|
62
62
|
res.header("Content-Length", 12345);
|
|
63
63
|
res.end();
|
|
64
64
|
});
|
|
65
65
|
server = app;
|
|
66
66
|
}
|
|
67
67
|
else {
|
|
68
|
-
throw
|
|
68
|
+
throw new Error(`unknown server type: ${server_type}`);
|
|
69
69
|
}
|
|
70
70
|
return server;
|
|
71
71
|
}
|
|
72
|
-
_.each(["http", "express"],
|
|
73
|
-
describe(
|
|
74
|
-
it("params with toString is stripped",
|
|
75
|
-
var cb = afterTest(2,
|
|
72
|
+
_.each(["http", "express"], (serverType) => {
|
|
73
|
+
describe(`middleware for *${serverType}* server: prototype pollution testing`, () => {
|
|
74
|
+
it("params with toString is stripped", (done) => {
|
|
75
|
+
var cb = afterTest(2, (err, res, line) => {
|
|
76
76
|
if (err) {
|
|
77
77
|
return done(err);
|
|
78
78
|
}
|
|
79
|
-
|
|
79
|
+
const expected = {
|
|
80
80
|
method: "GET",
|
|
81
81
|
path: "/hello/world",
|
|
82
82
|
params: "?",
|
|
@@ -87,7 +87,6 @@ _.each(["http", "express"], function (serverType) {
|
|
|
87
87
|
via: "kayvee-middleware",
|
|
88
88
|
level: "info",
|
|
89
89
|
title: "request-finished",
|
|
90
|
-
canary: false,
|
|
91
90
|
deploy_env: "testing",
|
|
92
91
|
wf_id: "abc",
|
|
93
92
|
source: "test-app",
|
|
@@ -106,29 +105,27 @@ _.each(["http", "express"], function (serverType) {
|
|
|
106
105
|
assert.deepEqual(actual, expected);
|
|
107
106
|
return done();
|
|
108
107
|
});
|
|
109
|
-
var stream = createLineStream(
|
|
108
|
+
var stream = createLineStream((line) => {
|
|
110
109
|
cb(null, null, line);
|
|
111
110
|
});
|
|
112
111
|
var options = {
|
|
113
112
|
source: "test-app",
|
|
114
113
|
ignore_dir: {
|
|
115
|
-
directory: __dirname
|
|
114
|
+
directory: `${__dirname}/static`,
|
|
116
115
|
},
|
|
117
116
|
};
|
|
118
|
-
var server = createServer(serverType, options, { stream
|
|
117
|
+
var server = createServer(serverType, options, { stream }, (req, res, next) => {
|
|
119
118
|
next();
|
|
120
119
|
});
|
|
121
120
|
// this one is logged
|
|
122
|
-
request(server)
|
|
123
|
-
.get("/hello/world?toString=foo")
|
|
124
|
-
.expect(200, cb);
|
|
121
|
+
request(server).get("/hello/world?toString=foo").expect(200, cb);
|
|
125
122
|
});
|
|
126
|
-
it("params from actual attack is stripped",
|
|
127
|
-
var cb = afterTest(2,
|
|
123
|
+
it("params from actual attack is stripped", (done) => {
|
|
124
|
+
var cb = afterTest(2, (err, res, line) => {
|
|
128
125
|
if (err) {
|
|
129
126
|
return done(err);
|
|
130
127
|
}
|
|
131
|
-
|
|
128
|
+
const expected = {
|
|
132
129
|
method: "GET",
|
|
133
130
|
path: "/hello/world",
|
|
134
131
|
params: "?",
|
|
@@ -139,7 +136,6 @@ _.each(["http", "express"], function (serverType) {
|
|
|
139
136
|
via: "kayvee-middleware",
|
|
140
137
|
level: "info",
|
|
141
138
|
title: "request-finished",
|
|
142
|
-
canary: false,
|
|
143
139
|
deploy_env: "testing",
|
|
144
140
|
wf_id: "abc",
|
|
145
141
|
source: "test-app",
|
|
@@ -158,88 +154,40 @@ _.each(["http", "express"], function (serverType) {
|
|
|
158
154
|
assert.deepEqual(actual, expected);
|
|
159
155
|
return done();
|
|
160
156
|
});
|
|
161
|
-
var stream = createLineStream(
|
|
157
|
+
var stream = createLineStream((line) => {
|
|
162
158
|
cb(null, null, line);
|
|
163
159
|
});
|
|
164
160
|
var options = {
|
|
165
161
|
source: "test-app",
|
|
166
162
|
ignore_dir: {
|
|
167
|
-
directory: __dirname
|
|
163
|
+
directory: `${__dirname}/static`,
|
|
168
164
|
},
|
|
169
165
|
};
|
|
170
|
-
var server = createServer(serverType, options, { stream
|
|
166
|
+
var server = createServer(serverType, options, { stream }, (req, res, next) => {
|
|
171
167
|
next();
|
|
172
168
|
});
|
|
173
|
-
|
|
169
|
+
const params = `__proto__[Expect]=xxx
|
|
170
|
+
&constructor[prototype][Expect]=xxx`;
|
|
174
171
|
// this one is logged
|
|
175
|
-
request(server)
|
|
176
|
-
.get("/hello/world?" + params)
|
|
177
|
-
.expect(200, cb);
|
|
172
|
+
request(server).get(`/hello/world?${params}`).expect(200, cb);
|
|
178
173
|
});
|
|
179
174
|
});
|
|
180
|
-
describe(
|
|
181
|
-
it("should throw error on intialization if `source` not set in `options`",
|
|
175
|
+
describe(`middleware for *${serverType}* server`, () => {
|
|
176
|
+
it("should throw error on intialization if `source` not set in `options`", (done) => {
|
|
182
177
|
var options = {};
|
|
183
|
-
var erroringServer =
|
|
178
|
+
var erroringServer = () => createServer(serverType, options, null, (req, res, next) => {
|
|
184
179
|
res.setHeader("some-header", "some-header-value");
|
|
185
180
|
next();
|
|
186
|
-
});
|
|
181
|
+
});
|
|
187
182
|
assert.throws(erroringServer, Error, "Expected an error to be thrown");
|
|
188
183
|
return done();
|
|
189
184
|
});
|
|
190
|
-
it("should pass default fields",
|
|
191
|
-
var cb = afterTest(2,
|
|
192
|
-
if (err) {
|
|
193
|
-
return done(err);
|
|
194
|
-
}
|
|
195
|
-
var expected = {
|
|
196
|
-
method: "GET",
|
|
197
|
-
path: "/hello/world",
|
|
198
|
-
params: "?a=1&b=2",
|
|
199
|
-
"response-size": 12345,
|
|
200
|
-
"response-time": 99999,
|
|
201
|
-
"status-code": 200,
|
|
202
|
-
ip: "::ffff:127.0.0.1",
|
|
203
|
-
via: "kayvee-middleware",
|
|
204
|
-
level: "info",
|
|
205
|
-
title: "request-finished",
|
|
206
|
-
canary: false,
|
|
207
|
-
deploy_env: "testing",
|
|
208
|
-
wf_id: "abc",
|
|
209
|
-
source: "test-app",
|
|
210
|
-
_kvmeta: {
|
|
211
|
-
team: "UNSET",
|
|
212
|
-
kv_version: "X.X.X",
|
|
213
|
-
kv_language: "js",
|
|
214
|
-
routes: [
|
|
215
|
-
{ type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
|
|
216
|
-
],
|
|
217
|
-
},
|
|
218
|
-
};
|
|
219
|
-
var actual = JSON.parse(line);
|
|
220
|
-
actual["response-time"] = 99999; // Masking the two fields that
|
|
221
|
-
actual._kvmeta.kv_version = "X.X.X"; // are expected to change
|
|
222
|
-
assert.deepEqual(actual, expected);
|
|
223
|
-
return done();
|
|
224
|
-
});
|
|
225
|
-
var stream = createLineStream(function (line) {
|
|
226
|
-
cb(null, null, line);
|
|
227
|
-
});
|
|
228
|
-
var options = { source: "test-app" };
|
|
229
|
-
var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
|
|
230
|
-
res.setHeader("some-header", "some-header-value");
|
|
231
|
-
next();
|
|
232
|
-
});
|
|
233
|
-
request(server)
|
|
234
|
-
.get("/hello/world?a=1&b=2")
|
|
235
|
-
.expect(200, cb);
|
|
236
|
-
});
|
|
237
|
-
it("should set canary flag if env var is present", function (done) {
|
|
238
|
-
var cb = afterTest(2, function (err, res, line) {
|
|
185
|
+
it("should pass default fields", (done) => {
|
|
186
|
+
var cb = afterTest(2, (err, res, line) => {
|
|
239
187
|
if (err) {
|
|
240
188
|
return done(err);
|
|
241
189
|
}
|
|
242
|
-
|
|
190
|
+
const expected = {
|
|
243
191
|
method: "GET",
|
|
244
192
|
path: "/hello/world",
|
|
245
193
|
params: "?a=1&b=2",
|
|
@@ -250,7 +198,6 @@ _.each(["http", "express"], function (serverType) {
|
|
|
250
198
|
via: "kayvee-middleware",
|
|
251
199
|
level: "info",
|
|
252
200
|
title: "request-finished",
|
|
253
|
-
canary: true,
|
|
254
201
|
deploy_env: "testing",
|
|
255
202
|
wf_id: "abc",
|
|
256
203
|
source: "test-app",
|
|
@@ -267,77 +214,24 @@ _.each(["http", "express"], function (serverType) {
|
|
|
267
214
|
actual["response-time"] = 99999; // Masking the two fields that
|
|
268
215
|
actual._kvmeta.kv_version = "X.X.X"; // are expected to change
|
|
269
216
|
assert.deepEqual(actual, expected);
|
|
270
|
-
delete process.env._CANARY;
|
|
271
217
|
return done();
|
|
272
218
|
});
|
|
273
|
-
|
|
274
|
-
var stream = createLineStream(function (line) {
|
|
219
|
+
var stream = createLineStream((line) => {
|
|
275
220
|
cb(null, null, line);
|
|
276
221
|
});
|
|
277
222
|
var options = { source: "test-app" };
|
|
278
|
-
var server = createServer(serverType, options, { stream
|
|
223
|
+
var server = createServer(serverType, options, { stream }, (req, res, next) => {
|
|
279
224
|
res.setHeader("some-header", "some-header-value");
|
|
280
225
|
next();
|
|
281
226
|
});
|
|
282
|
-
request(server)
|
|
283
|
-
.get("/hello/world?a=1&b=2")
|
|
284
|
-
.expect(200, cb);
|
|
227
|
+
request(server).get("/hello/world?a=1&b=2").expect(200, cb);
|
|
285
228
|
});
|
|
286
|
-
it("should
|
|
287
|
-
var cb = afterTest(2,
|
|
229
|
+
it("should allow logging user-specified request headers", (done) => {
|
|
230
|
+
var cb = afterTest(2, (err, res, line) => {
|
|
288
231
|
if (err) {
|
|
289
232
|
return done(err);
|
|
290
233
|
}
|
|
291
|
-
|
|
292
|
-
method: "GET",
|
|
293
|
-
path: "/hello/world",
|
|
294
|
-
params: "?a=1&b=2",
|
|
295
|
-
"response-size": 12345,
|
|
296
|
-
"response-time": 99999,
|
|
297
|
-
"status-code": 200,
|
|
298
|
-
ip: "::ffff:127.0.0.1",
|
|
299
|
-
via: "kayvee-middleware",
|
|
300
|
-
level: "info",
|
|
301
|
-
title: "request-finished",
|
|
302
|
-
canary: true,
|
|
303
|
-
deploy_env: "testing",
|
|
304
|
-
wf_id: "abc",
|
|
305
|
-
source: "test-app",
|
|
306
|
-
_kvmeta: {
|
|
307
|
-
team: "UNSET",
|
|
308
|
-
kv_version: "X.X.X",
|
|
309
|
-
kv_language: "js",
|
|
310
|
-
routes: [
|
|
311
|
-
{ type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
|
|
312
|
-
],
|
|
313
|
-
},
|
|
314
|
-
};
|
|
315
|
-
var actual = JSON.parse(line);
|
|
316
|
-
actual["response-time"] = 99999; // Masking the two fields that
|
|
317
|
-
actual._kvmeta.kv_version = "X.X.X"; // are expected to change
|
|
318
|
-
assert.deepEqual(actual, expected);
|
|
319
|
-
delete process.env._POD_SHORTNAME;
|
|
320
|
-
return done();
|
|
321
|
-
});
|
|
322
|
-
process.env._POD_SHORTNAME = "us-west-1-dev-canary-xxxxxxxx";
|
|
323
|
-
var stream = createLineStream(function (line) {
|
|
324
|
-
cb(null, null, line);
|
|
325
|
-
});
|
|
326
|
-
var options = { source: "test-app" };
|
|
327
|
-
var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
|
|
328
|
-
res.setHeader("some-header", "some-header-value");
|
|
329
|
-
next();
|
|
330
|
-
});
|
|
331
|
-
request(server)
|
|
332
|
-
.get("/hello/world?a=1&b=2")
|
|
333
|
-
.expect(200, cb);
|
|
334
|
-
});
|
|
335
|
-
it("should allow logging user-specified request headers", function (done) {
|
|
336
|
-
var cb = afterTest(2, function (err, res, line) {
|
|
337
|
-
if (err) {
|
|
338
|
-
return done(err);
|
|
339
|
-
}
|
|
340
|
-
var expected = {
|
|
234
|
+
const expected = {
|
|
341
235
|
"some-header": "some-header-value",
|
|
342
236
|
"another-header": "another-header-value",
|
|
343
237
|
method: "GET",
|
|
@@ -350,7 +244,6 @@ _.each(["http", "express"], function (serverType) {
|
|
|
350
244
|
via: "kayvee-middleware",
|
|
351
245
|
level: "info",
|
|
352
246
|
title: "request-finished",
|
|
353
|
-
canary: false,
|
|
354
247
|
deploy_env: "testing",
|
|
355
248
|
wf_id: "abc",
|
|
356
249
|
source: "test-app",
|
|
@@ -369,14 +262,14 @@ _.each(["http", "express"], function (serverType) {
|
|
|
369
262
|
assert.deepEqual(actual, expected);
|
|
370
263
|
return done();
|
|
371
264
|
});
|
|
372
|
-
var stream = createLineStream(
|
|
265
|
+
var stream = createLineStream((line) => {
|
|
373
266
|
cb(null, null, line);
|
|
374
267
|
});
|
|
375
268
|
var options = {
|
|
376
269
|
source: "test-app",
|
|
377
270
|
headers: ["some-header", "another-header"],
|
|
378
271
|
};
|
|
379
|
-
var server = createServer(serverType, options, { stream
|
|
272
|
+
var server = createServer(serverType, options, { stream }, (req, res, next) => {
|
|
380
273
|
next();
|
|
381
274
|
});
|
|
382
275
|
request(server)
|
|
@@ -385,12 +278,12 @@ _.each(["http", "express"], function (serverType) {
|
|
|
385
278
|
.set("another-header", "another-header-value")
|
|
386
279
|
.expect(200, cb);
|
|
387
280
|
});
|
|
388
|
-
it("should allow logging from user-specified handlers",
|
|
389
|
-
var cb = afterTest(2,
|
|
281
|
+
it("should allow logging from user-specified handlers", (done) => {
|
|
282
|
+
var cb = afterTest(2, (err, res, line) => {
|
|
390
283
|
if (err) {
|
|
391
284
|
return done(err);
|
|
392
285
|
}
|
|
393
|
-
|
|
286
|
+
const expected = {
|
|
394
287
|
global: 1,
|
|
395
288
|
global2: 2,
|
|
396
289
|
url: "/hello/world?a=1&b=2",
|
|
@@ -404,7 +297,6 @@ _.each(["http", "express"], function (serverType) {
|
|
|
404
297
|
via: "kayvee-middleware",
|
|
405
298
|
level: "info",
|
|
406
299
|
title: "request-finished",
|
|
407
|
-
canary: false,
|
|
408
300
|
deploy_env: "testing",
|
|
409
301
|
wf_id: "abc",
|
|
410
302
|
source: "test-app",
|
|
@@ -423,30 +315,24 @@ _.each(["http", "express"], function (serverType) {
|
|
|
423
315
|
assert.deepEqual(actual, expected);
|
|
424
316
|
return done();
|
|
425
317
|
});
|
|
426
|
-
var stream = createLineStream(
|
|
318
|
+
var stream = createLineStream((line) => {
|
|
427
319
|
cb(null, null, line);
|
|
428
320
|
});
|
|
429
321
|
var options = {
|
|
430
322
|
source: "test-app",
|
|
431
|
-
handlers: [
|
|
432
|
-
function () { return ({ global: 1 }); },
|
|
433
|
-
function () { return ({ global2: 2 }); },
|
|
434
|
-
function (req) { return ({ url: req.url }); },
|
|
435
|
-
],
|
|
323
|
+
handlers: [() => ({ global: 1 }), () => ({ global2: 2 }), (req) => ({ url: req.url })],
|
|
436
324
|
};
|
|
437
|
-
var server = createServer(serverType, options, { stream
|
|
325
|
+
var server = createServer(serverType, options, { stream }, (req, res, next) => {
|
|
438
326
|
next();
|
|
439
327
|
});
|
|
440
|
-
request(server)
|
|
441
|
-
.get("/hello/world?a=1&b=2")
|
|
442
|
-
.expect(200, cb);
|
|
328
|
+
request(server).get("/hello/world?a=1&b=2").expect(200, cb);
|
|
443
329
|
});
|
|
444
|
-
it("should not log null or undefined values",
|
|
445
|
-
var cb = afterTest(2,
|
|
330
|
+
it("should not log null or undefined values", (done) => {
|
|
331
|
+
var cb = afterTest(2, (err, res, line) => {
|
|
446
332
|
if (err) {
|
|
447
333
|
return done(err);
|
|
448
334
|
}
|
|
449
|
-
|
|
335
|
+
const expected = {
|
|
450
336
|
method: "GET",
|
|
451
337
|
path: "/hello/world",
|
|
452
338
|
params: "?a=1&b=2",
|
|
@@ -457,7 +343,6 @@ _.each(["http", "express"], function (serverType) {
|
|
|
457
343
|
via: "kayvee-middleware",
|
|
458
344
|
level: "info",
|
|
459
345
|
title: "request-finished",
|
|
460
|
-
canary: false,
|
|
461
346
|
deploy_env: "testing",
|
|
462
347
|
wf_id: "abc",
|
|
463
348
|
source: "test-app",
|
|
@@ -476,30 +361,26 @@ _.each(["http", "express"], function (serverType) {
|
|
|
476
361
|
assert.deepEqual(actual, expected);
|
|
477
362
|
return done();
|
|
478
363
|
});
|
|
479
|
-
var stream = createLineStream(
|
|
364
|
+
var stream = createLineStream((line) => {
|
|
480
365
|
cb(null, null, line);
|
|
481
366
|
});
|
|
482
367
|
var options = {
|
|
483
368
|
source: "test-app",
|
|
484
369
|
// These values should not be logged
|
|
485
370
|
headers: ["this-header-dne"],
|
|
486
|
-
handlers: [
|
|
487
|
-
function () { return ({ undef: undefined }); },
|
|
488
|
-
],
|
|
371
|
+
handlers: [() => ({ undef: undefined })],
|
|
489
372
|
};
|
|
490
|
-
var server = createServer(serverType, options, { stream
|
|
373
|
+
var server = createServer(serverType, options, { stream }, (req, res, next) => {
|
|
491
374
|
next();
|
|
492
375
|
});
|
|
493
|
-
request(server)
|
|
494
|
-
.get("/hello/world?a=1&b=2")
|
|
495
|
-
.expect(200, cb);
|
|
376
|
+
request(server).get("/hello/world?a=1&b=2").expect(200, cb);
|
|
496
377
|
});
|
|
497
|
-
it("should keep processing if there are broken user-specified handlers",
|
|
498
|
-
var cb = afterTest(2,
|
|
378
|
+
it("should keep processing if there are broken user-specified handlers", (done) => {
|
|
379
|
+
var cb = afterTest(2, (err, res, line) => {
|
|
499
380
|
if (err) {
|
|
500
381
|
return done(err);
|
|
501
382
|
}
|
|
502
|
-
|
|
383
|
+
const expected = {
|
|
503
384
|
global: 1,
|
|
504
385
|
method: "GET",
|
|
505
386
|
path: "/hello/world",
|
|
@@ -511,7 +392,6 @@ _.each(["http", "express"], function (serverType) {
|
|
|
511
392
|
via: "kayvee-middleware",
|
|
512
393
|
level: "info",
|
|
513
394
|
title: "request-finished",
|
|
514
|
-
canary: false,
|
|
515
395
|
deploy_env: "testing",
|
|
516
396
|
wf_id: "abc",
|
|
517
397
|
source: "test-app",
|
|
@@ -530,31 +410,31 @@ _.each(["http", "express"], function (serverType) {
|
|
|
530
410
|
assert.deepEqual(actual, expected);
|
|
531
411
|
return done();
|
|
532
412
|
});
|
|
533
|
-
var stream = createLineStream(
|
|
413
|
+
var stream = createLineStream((line) => {
|
|
534
414
|
cb(null, null, line);
|
|
535
415
|
});
|
|
536
416
|
var options = {
|
|
537
417
|
source: "test-app",
|
|
538
418
|
handlers: [
|
|
539
419
|
// This handler should be ignored, because it has an error
|
|
540
|
-
|
|
420
|
+
() => {
|
|
421
|
+
throw new Error("handler that throws an error");
|
|
422
|
+
},
|
|
541
423
|
// This handler should still work
|
|
542
|
-
|
|
424
|
+
() => ({ global: 1 }),
|
|
543
425
|
],
|
|
544
426
|
};
|
|
545
|
-
var server = createServer(serverType, options, { stream
|
|
427
|
+
var server = createServer(serverType, options, { stream }, (req, res, next) => {
|
|
546
428
|
next();
|
|
547
429
|
});
|
|
548
|
-
request(server)
|
|
549
|
-
.get("/hello/world?a=1&b=2")
|
|
550
|
-
.expect(200, cb);
|
|
430
|
+
request(server).get("/hello/world?a=1&b=2").expect(200, cb);
|
|
551
431
|
});
|
|
552
|
-
it("should allow the user to override `base_handlers`",
|
|
553
|
-
var cb = afterTest(2,
|
|
432
|
+
it("should allow the user to override `base_handlers`", (done) => {
|
|
433
|
+
var cb = afterTest(2, (err, res, line) => {
|
|
554
434
|
if (err) {
|
|
555
435
|
return done(err);
|
|
556
436
|
}
|
|
557
|
-
|
|
437
|
+
const expected = {
|
|
558
438
|
global: 1,
|
|
559
439
|
base: 1,
|
|
560
440
|
deploy_env: "testing",
|
|
@@ -572,31 +452,25 @@ _.each(["http", "express"], function (serverType) {
|
|
|
572
452
|
assert.deepEqual(actual, expected);
|
|
573
453
|
return done();
|
|
574
454
|
});
|
|
575
|
-
var stream = createLineStream(
|
|
455
|
+
var stream = createLineStream((line) => {
|
|
576
456
|
cb(null, null, line);
|
|
577
457
|
});
|
|
578
458
|
var options = {
|
|
579
459
|
source: "test-app",
|
|
580
|
-
base_handlers: [
|
|
581
|
-
|
|
582
|
-
],
|
|
583
|
-
handlers: [
|
|
584
|
-
function () { return ({ global: 1 }); },
|
|
585
|
-
],
|
|
460
|
+
base_handlers: [() => ({ base: 1 })],
|
|
461
|
+
handlers: [() => ({ global: 1 })],
|
|
586
462
|
};
|
|
587
|
-
var server = createServer(serverType, options, { stream
|
|
463
|
+
var server = createServer(serverType, options, { stream }, (req, res, next) => {
|
|
588
464
|
next();
|
|
589
465
|
});
|
|
590
|
-
request(server)
|
|
591
|
-
.get("/hello/world?a=1&b=2")
|
|
592
|
-
.expect(200, cb);
|
|
466
|
+
request(server).get("/hello/world?a=1&b=2").expect(200, cb);
|
|
593
467
|
});
|
|
594
|
-
it("should be robust to handlers that return non Objects",
|
|
595
|
-
var cb = afterTest(2,
|
|
468
|
+
it("should be robust to handlers that return non Objects", (done) => {
|
|
469
|
+
var cb = afterTest(2, (err, res, line) => {
|
|
596
470
|
if (err) {
|
|
597
471
|
return done(err);
|
|
598
472
|
}
|
|
599
|
-
|
|
473
|
+
const expected = {
|
|
600
474
|
global: 1,
|
|
601
475
|
base: 1,
|
|
602
476
|
source: "test-app",
|
|
@@ -614,39 +488,25 @@ _.each(["http", "express"], function (serverType) {
|
|
|
614
488
|
assert.deepEqual(actual, expected);
|
|
615
489
|
return done();
|
|
616
490
|
});
|
|
617
|
-
var stream = createLineStream(
|
|
491
|
+
var stream = createLineStream((line) => {
|
|
618
492
|
cb(null, null, line);
|
|
619
493
|
});
|
|
620
494
|
var options = {
|
|
621
495
|
source: "test-app",
|
|
622
|
-
base_handlers: [
|
|
623
|
-
|
|
624
|
-
function () { return ("a"); },
|
|
625
|
-
function () { return ([]); },
|
|
626
|
-
function () { return ({}); },
|
|
627
|
-
function () { return ({ base: 1 }); },
|
|
628
|
-
],
|
|
629
|
-
handlers: [
|
|
630
|
-
function () { return (1); },
|
|
631
|
-
function () { return ("a"); },
|
|
632
|
-
function () { return ([]); },
|
|
633
|
-
function () { return ({}); },
|
|
634
|
-
function () { return ({ global: 1 }); },
|
|
635
|
-
],
|
|
496
|
+
base_handlers: [() => 1, () => "a", () => [], () => ({}), () => ({ base: 1 })],
|
|
497
|
+
handlers: [() => 1, () => "a", () => [], () => ({}), () => ({ global: 1 })],
|
|
636
498
|
};
|
|
637
|
-
var server = createServer(serverType, options, { stream
|
|
499
|
+
var server = createServer(serverType, options, { stream, skip: null }, (req, res, next) => {
|
|
638
500
|
next();
|
|
639
501
|
});
|
|
640
|
-
request(server)
|
|
641
|
-
.get("/hello/world?a=1&b=2")
|
|
642
|
-
.expect(200, cb);
|
|
502
|
+
request(server).get("/hello/world?a=1&b=2").expect(200, cb);
|
|
643
503
|
});
|
|
644
|
-
it("allows ignoring requests to files in a static directory",
|
|
645
|
-
var cb = afterTest(2,
|
|
504
|
+
it("allows ignoring requests to files in a static directory", (done) => {
|
|
505
|
+
var cb = afterTest(2, (err, res, line) => {
|
|
646
506
|
if (err) {
|
|
647
507
|
return done(err);
|
|
648
508
|
}
|
|
649
|
-
|
|
509
|
+
const expected = {
|
|
650
510
|
method: "GET",
|
|
651
511
|
path: "/hello/world",
|
|
652
512
|
params: "?",
|
|
@@ -657,7 +517,6 @@ _.each(["http", "express"], function (serverType) {
|
|
|
657
517
|
via: "kayvee-middleware",
|
|
658
518
|
level: "info",
|
|
659
519
|
title: "request-finished",
|
|
660
|
-
canary: false,
|
|
661
520
|
deploy_env: "testing",
|
|
662
521
|
wf_id: "abc",
|
|
663
522
|
source: "test-app",
|
|
@@ -676,26 +535,22 @@ _.each(["http", "express"], function (serverType) {
|
|
|
676
535
|
assert.deepEqual(actual, expected);
|
|
677
536
|
return done();
|
|
678
537
|
});
|
|
679
|
-
var stream = createLineStream(
|
|
538
|
+
var stream = createLineStream((line) => {
|
|
680
539
|
cb(null, null, line);
|
|
681
540
|
});
|
|
682
541
|
var options = {
|
|
683
542
|
source: "test-app",
|
|
684
543
|
ignore_dir: {
|
|
685
|
-
directory: __dirname
|
|
544
|
+
directory: `${__dirname}/static`,
|
|
686
545
|
},
|
|
687
546
|
};
|
|
688
|
-
var server = createServer(serverType, options, { stream
|
|
547
|
+
var server = createServer(serverType, options, { stream }, (req, res, next) => {
|
|
689
548
|
next();
|
|
690
549
|
});
|
|
691
550
|
// this line is never logged
|
|
692
|
-
request(server)
|
|
693
|
-
.get("/empty.css")
|
|
694
|
-
.expect(200);
|
|
551
|
+
request(server).get("/empty.css").expect(200);
|
|
695
552
|
// this one is logged
|
|
696
|
-
request(server)
|
|
697
|
-
.get("/hello/world")
|
|
698
|
-
.expect(200, cb);
|
|
553
|
+
request(server).get("/hello/world").expect(200, cb);
|
|
699
554
|
});
|
|
700
555
|
});
|
|
701
556
|
});
|