Skip to content

Commit 7e8081b

Browse files
committed
Fix up header tests
1 parent a51e965 commit 7e8081b

File tree

3 files changed

+63
-30
lines changed

3 files changed

+63
-30
lines changed

lib/gateway.js

Lines changed: 55 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,8 @@ class Gateway extends EventEmitter {
204204
this._serverSentEvents[req._uuid] = sseInstance;
205205
}
206206

207-
__clientError__ (req, res, message, status, headers = {}) {
207+
__clientError__ (req, res, message, status, headers) {
208+
headers = headers || {};
208209
headers = this.__createHeaders__(req, headers);
209210
headers['content-type'] = 'application/json';
210211
return this.__endRequest__(
@@ -221,7 +222,8 @@ class Gateway extends EventEmitter {
221222
);
222223
}
223224

224-
__parameterError__ (req, res, details, headers = {}) {
225+
__parameterError__ (req, res, details, headers) {
226+
headers = headers || {};
225227
headers = this.__createHeaders__(req, headers);
226228
headers['content-type'] = 'application/json';
227229
return this.__endRequest__(
@@ -239,7 +241,8 @@ class Gateway extends EventEmitter {
239241
);
240242
}
241243

242-
__parameterParseError__ (req, res, msg, headers = {}) {
244+
__parameterParseError__ (req, res, msg, headers) {
245+
headers = headers || {};
243246
headers = this.__createHeaders__(req, headers);
244247
headers['content-type'] = 'application/json';
245248
return this.__endRequest__(
@@ -256,7 +259,8 @@ class Gateway extends EventEmitter {
256259
);
257260
}
258261

259-
__originError__ (req, res, origin, headers = {}) {
262+
__originError__ (req, res, origin, headers) {
263+
headers = headers || {};
260264
headers = this.__createHeaders__(req, headers);
261265
headers['content-type'] = 'application/json';
262266
return this.__endRequest__(
@@ -273,7 +277,8 @@ class Gateway extends EventEmitter {
273277
);
274278
}
275279

276-
__debugError__ (req, res, message, headers = {}) {
280+
__debugError__ (req, res, message, headers) {
281+
headers = headers || {};
277282
message = message || `You do not have permission to debug this endpoint`;
278283
headers = this.__createHeaders__(req, headers);
279284
headers['content-type'] = 'application/json';
@@ -291,7 +296,8 @@ class Gateway extends EventEmitter {
291296
);
292297
}
293298

294-
__executionModeError__ (req, res, mode, headers = {}) {
299+
__executionModeError__ (req, res, mode, headers) {
300+
headers = headers || {};
295301
headers = this.__createHeaders__(req, headers);
296302
headers['content-type'] = 'application/json';
297303
return this.__endRequest__(
@@ -308,7 +314,8 @@ class Gateway extends EventEmitter {
308314
);
309315
}
310316

311-
__streamListenerError__ (req, res, details, headers = {}) {
317+
__streamListenerError__ (req, res, details, headers) {
318+
headers = headers || {};
312319
headers = this.__createHeaders__(req, headers);
313320
headers['content-type'] = 'application/json';
314321
return this.__endRequest__(
@@ -326,7 +333,8 @@ class Gateway extends EventEmitter {
326333
);
327334
}
328335

329-
__accessSourceError__ (req, res, msg, headers = {}) {
336+
__accessSourceError__ (req, res, msg, headers) {
337+
headers = headers || {};
330338
headers = this.__createHeaders__(req, headers);
331339
headers['content-type'] = 'application/json';
332340
return this.__endRequest__(
@@ -343,7 +351,8 @@ class Gateway extends EventEmitter {
343351
);
344352
}
345353

346-
__accessPermissionError__ (req, res, msg, headers = {}) {
354+
__accessPermissionError__ (req, res, msg, headers) {
355+
headers = headers || {};
347356
headers = this.__createHeaders__(req, headers);
348357
headers['content-type'] = 'application/json';
349358
return this.__endRequest__(
@@ -360,7 +369,8 @@ class Gateway extends EventEmitter {
360369
);
361370
}
362371

363-
__accessAuthError__ (req, res, msg, headers = {}) {
372+
__accessAuthError__ (req, res, msg, headers) {
373+
headers = headers || {};
364374
headers = this.__createHeaders__(req, headers);
365375
headers['content-type'] = 'application/json';
366376
return this.__endRequest__(
@@ -377,7 +387,8 @@ class Gateway extends EventEmitter {
377387
);
378388
}
379389

380-
__accessSuspendedError__ (req, res, msg, headers = {}) {
390+
__accessSuspendedError__ (req, res, msg, headers) {
391+
headers = headers || {};
381392
headers = this.__createHeaders__(req, headers);
382393
headers['content-type'] = 'application/json';
383394
return this.__endRequest__(
@@ -394,7 +405,8 @@ class Gateway extends EventEmitter {
394405
);
395406
}
396407

397-
__ownerSuspendedError__ (req, res, msg, headers = {}) {
408+
__ownerSuspendedError__ (req, res, msg, headers) {
409+
headers = headers || {};
398410
headers = this.__createHeaders__(req, headers);
399411
headers['content-type'] = 'application/json';
400412
return this.__endRequest__(
@@ -411,7 +423,8 @@ class Gateway extends EventEmitter {
411423
);
412424
}
413425

414-
__ownerPaymentRequiredError__ (req, res, msg, headers = {}) {
426+
__ownerPaymentRequiredError__ (req, res, msg, headers) {
427+
headers = headers || {};
415428
headers = this.__createHeaders__(req, headers);
416429
headers['content-type'] = 'application/json';
417430
return this.__endRequest__(
@@ -428,7 +441,8 @@ class Gateway extends EventEmitter {
428441
);
429442
}
430443

431-
__paymentRequiredError__ (req, res, msg, headers = {}) {
444+
__paymentRequiredError__ (req, res, msg, headers) {
445+
headers = headers || {};
432446
headers = this.__createHeaders__(req, headers);
433447
headers['content-type'] = 'application/json';
434448
return this.__endRequest__(
@@ -445,7 +459,8 @@ class Gateway extends EventEmitter {
445459
);
446460
}
447461

448-
__rateLimitError__ (req, res, message, count, period, headers = {}) {
462+
__rateLimitError__ (req, res, message, count, period, headers) {
463+
headers = headers || {};
449464
headers = this.__createHeaders__(req, headers);
450465
headers['content-type'] = 'application/json';
451466
return this.__endRequest__(
@@ -465,7 +480,8 @@ class Gateway extends EventEmitter {
465480
);
466481
}
467482

468-
__authRateLimitError__ (req, res, message, count, period, headers = {}) {
483+
__authRateLimitError__ (req, res, message, count, period, headers) {
484+
headers = headers || {};
469485
headers = this.__createHeaders__(req, headers);
470486
headers['content-type'] = 'application/json';
471487
return this.__endRequest__(
@@ -485,7 +501,8 @@ class Gateway extends EventEmitter {
485501
);
486502
}
487503

488-
__unauthRateLimitError__ (req, res, message, count, period, headers = {}) {
504+
__unauthRateLimitError__ (req, res, message, count, period, headers) {
505+
headers = headers || {};
489506
headers = this.__createHeaders__(req, headers);
490507
headers['content-type'] = 'application/json';
491508
return this.__endRequest__(
@@ -505,7 +522,8 @@ class Gateway extends EventEmitter {
505522
);
506523
}
507524

508-
__saveError__(req, res, msg, headers = {}) {
525+
__saveError__(req, res, msg, headers) {
526+
headers = headers || {};
509527
headers = this.__createHeaders__(req, headers);
510528
headers['content-type'] = 'application/json';
511529
return this.__endRequest__(
@@ -522,7 +540,8 @@ class Gateway extends EventEmitter {
522540
);
523541
}
524542

525-
__maintenanceError__(req, res, msg, headers = {}) {
543+
__maintenanceError__(req, res, msg, headers) {
544+
headers = headers || {};
526545
headers = this.__createHeaders__(req, headers);
527546
headers['content-type'] = 'application/json';
528547
return this.__endRequest__(
@@ -540,7 +559,8 @@ class Gateway extends EventEmitter {
540559
}
541560

542561
__updateError__(req, res, msg, headers) {
543-
headers = this.__createHeaders__(req, headers = {});
562+
headers = headers || {};
563+
headers = this.__createHeaders__(req, headers);
544564
headers['content-type'] = 'application/json';
545565
return this.__endRequest__(
546566
409,
@@ -556,7 +576,8 @@ class Gateway extends EventEmitter {
556576
);
557577
}
558578

559-
__timeoutError__(req, res, msg, headers = {}) {
579+
__timeoutError__(req, res, msg, headers) {
580+
headers = headers || {};
560581
headers = this.__createHeaders__(req, headers);
561582
headers['content-type'] = 'application/json';
562583
let error = {
@@ -574,7 +595,8 @@ class Gateway extends EventEmitter {
574595
);
575596
}
576597

577-
__fatalError__ (req, res, msg, stack, headers = {}) {
598+
__fatalError__ (req, res, msg, stack, headers) {
599+
headers = headers || {};
578600
headers = this.__createHeaders__(req, headers);
579601
headers['content-type'] = 'application/json';
580602
let error = {
@@ -601,7 +623,8 @@ class Gateway extends EventEmitter {
601623
);
602624
}
603625

604-
__runtimeError__ (req, res, msg, details, stack, headers = {}) {
626+
__runtimeError__ (req, res, msg, details, stack, headers) {
627+
headers = headers || {};
605628
headers = this.__createHeaders__(req, headers);
606629
headers['content-type'] = 'application/json';
607630
let error = {};
@@ -620,7 +643,8 @@ class Gateway extends EventEmitter {
620643
);
621644
}
622645

623-
__invalidResponseHeaderError__ (req, res, details, headers = {}) {
646+
__invalidResponseHeaderError__ (req, res, details, headers) {
647+
headers = headers || {};
624648
headers = this.__createHeaders__(req, headers);
625649
headers['content-type'] = 'application/json';
626650
return this.__endRequest__(
@@ -638,7 +662,8 @@ class Gateway extends EventEmitter {
638662
);
639663
}
640664

641-
__valueError__ (req, res, details, headers = {}) {
665+
__valueError__ (req, res, details, headers) {
666+
headers = headers || {};
642667
headers = this.__createHeaders__(req, headers);
643668
headers['content-type'] = 'application/json';
644669
return this.__endRequest__(
@@ -656,7 +681,8 @@ class Gateway extends EventEmitter {
656681
);
657682
}
658683

659-
__autoformatError__ (req, res, msg, details, stack, headers = {}) {
684+
__autoformatError__ (req, res, msg, details, stack, headers) {
685+
headers = headers || {};
660686
headers = this.__createHeaders__(req, headers);
661687
headers['content-type'] = 'application/json';
662688
let error = {};
@@ -1275,6 +1301,7 @@ class Gateway extends EventEmitter {
12751301
validated.params._debug === '' ||
12761302
validated.params._debug
12771303
) {
1304+
headers['x-debug'] = true;
12781305
if (!data.canDebug) {
12791306
this.log(req, `Debug Error`, 'error');
12801307
return this.__debugError__(req, res, null, headers);
@@ -1289,10 +1316,9 @@ class Gateway extends EventEmitter {
12891316
this.__validateDebug__(validated.params._debug);
12901317
} catch (e) {
12911318
this.log(req, `Debug Error`, 'error');
1292-
return this.__debugError__(req, res, e.message);
1319+
return this.__debugError__(req, res, e.message, headers);
12931320
}
12941321
// Set data.debug to true
1295-
headers['x-debug'] = true;
12961322
data.debug = true;
12971323
}
12981324
}
@@ -1317,7 +1343,7 @@ class Gateway extends EventEmitter {
13171343
let streamValidated = this.__validateStreams__(validated.params._stream, definition.streams);
13181344
if (streamValidated.errors) {
13191345
this.log(req, `Stream Listener Error`, 'error');
1320-
return this.__streamListenerError__(req, res, streamValidated.errors);
1346+
return this.__streamListenerError__(req, res, streamValidated.errors, headers);
13211347
}
13221348
this.log(req, `Begin Server-Sent Event`);
13231349
this.__beginServerSentEvent__(req, res, definition, validated.params, headers);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "functionscript",
3-
"version": "2.8.7",
3+
"version": "2.8.8",
44
"description": "An API gateway and framework for turning functions into web services",
55
"author": "Keith Horwood <keithwhor@gmail.com>",
66
"main": "index.js",

tests/gateway/tests.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4965,6 +4965,7 @@ module.exports = (expect) => {
49654965
expect(err).to.not.exist;
49664966
expect(res.statusCode).to.equal(200);
49674967
expect(res.headers['content-type']).to.equal('text/event-stream');
4968+
expect(res.headers['x-debug']).to.equal('true');
49684969
expect(result).to.exist;
49694970

49704971
let events = parseServerSentEvents(result);
@@ -5005,6 +5006,7 @@ module.exports = (expect) => {
50055006
expect(err).to.not.exist;
50065007
expect(res.statusCode).to.equal(200);
50075008
expect(res.headers['content-type']).to.equal('text/event-stream');
5009+
expect(res.headers['x-debug']).to.equal('true');
50085010
expect(result).to.exist;
50095011

50105012
let events = parseServerSentEvents(result);
@@ -5045,6 +5047,7 @@ module.exports = (expect) => {
50455047
expect(err).to.not.exist;
50465048
expect(res.statusCode).to.equal(400);
50475049
expect(res.headers['content-type']).to.equal('application/json');
5050+
expect(res.headers['x-debug']).to.equal('true');
50485051
expect(result).to.exist;
50495052
expect(result.error).to.exist;
50505053
expect(result.error.type).to.equal('StreamListenerError');
@@ -5061,6 +5064,7 @@ module.exports = (expect) => {
50615064
expect(err).to.not.exist;
50625065
expect(res.statusCode).to.equal(200);
50635066
expect(res.headers['content-type']).to.equal('text/event-stream');
5067+
expect(res.headers['x-debug']).to.equal('true');
50645068
expect(result).to.exist;
50655069

50665070
let events = parseServerSentEvents(result);
@@ -5091,6 +5095,7 @@ module.exports = (expect) => {
50915095
expect(err).to.not.exist;
50925096
expect(res.statusCode).to.equal(403);
50935097
expect(res.headers['content-type']).to.equal('application/json');
5098+
expect(res.headers['x-debug']).to.equal('true');
50945099
expect(result).to.exist;
50955100
expect(result.error).to.exist;
50965101
expect(result.error.type).to.equal('ExecutionModeError');
@@ -5123,6 +5128,7 @@ module.exports = (expect) => {
51235128
expect(err).to.not.exist;
51245129
expect(res.statusCode).to.equal(403);
51255130
expect(res.headers['content-type']).to.equal('application/json');
5131+
expect(res.headers['x-debug']).to.equal('true');
51265132
expect(result).to.exist;
51275133
expect(result.error).to.exist;
51285134
expect(result.error.type).to.equal('DebugError');
@@ -5139,6 +5145,7 @@ module.exports = (expect) => {
51395145
expect(err).to.not.exist;
51405146
expect(res.statusCode).to.equal(403);
51415147
expect(res.headers['content-type']).to.equal('application/json');
5148+
expect(res.headers['x-debug']).to.equal('true');
51425149
expect(result).to.exist;
51435150
expect(result.error).to.exist;
51445151
expect(result.error.type).to.equal('DebugError');

0 commit comments

Comments
 (0)