@@ -294,7 +294,7 @@ describe('Server', () => {
294
294
295
295
describe ( 'decorate()' , ( ) => {
296
296
297
- it ( 'decorates request' , async ( ) => {
297
+ it ( 'decorates request with function ' , async ( ) => {
298
298
299
299
const server = Hapi . server ( ) ;
300
300
@@ -316,6 +316,25 @@ describe('Server', () => {
316
316
expect ( res . result ) . to . match ( / ^ .* \: .* \: .* \: .* \: .* $ / ) ;
317
317
} ) ;
318
318
319
+ it ( 'decorates request with object' , async ( ) => {
320
+
321
+ const server = Hapi . server ( ) ;
322
+
323
+ const customData = { id : '123' } ;
324
+
325
+ server . decorate ( 'request' , 'customData' , customData ) ;
326
+
327
+ server . route ( {
328
+ method : 'GET' ,
329
+ path : '/' ,
330
+ handler : ( request ) => request . customData
331
+ } ) ;
332
+
333
+ const res = await server . inject ( '/' ) ;
334
+ expect ( res . statusCode ) . to . equal ( 200 ) ;
335
+ expect ( res . result ) . to . equal ( { id : '123' } ) ;
336
+ } ) ;
337
+
319
338
it ( 'decorates request (apply)' , async ( ) => {
320
339
321
340
const server = Hapi . server ( ) ;
@@ -366,6 +385,26 @@ describe('Server', () => {
366
385
expect ( res . result ) . to . match ( / ^ .* \: .* \: .* \: .* \: .* ! $ / ) ;
367
386
} ) ;
368
387
388
+ it ( 'decorates request (extend) with an array' , async ( ) => {
389
+
390
+ const server = Hapi . server ( ) ;
391
+
392
+ const items = [ 'one' , 'two' , 'three' ] ;
393
+
394
+ server . decorate ( 'request' , 'items' , items ) ;
395
+ server . decorate ( 'request' , 'items' , ( existing ) => [ ...existing , 'four' ] , { extend : true } ) ;
396
+
397
+ server . route ( {
398
+ method : 'GET' ,
399
+ path : '/' ,
400
+ handler : ( request ) => request . items
401
+ } ) ;
402
+
403
+ const res = await server . inject ( '/' ) ;
404
+ expect ( res . statusCode ) . to . equal ( 200 ) ;
405
+ expect ( res . result ) . to . equal ( [ ...items , 'four' ] ) ;
406
+ } ) ;
407
+
369
408
it ( 'decorates request (apply + extend)' , async ( ) => {
370
409
371
410
const server = Hapi . server ( ) ;
@@ -444,6 +483,25 @@ describe('Server', () => {
444
483
expect ( res . result . status ) . to . equal ( 'ok' ) ;
445
484
} ) ;
446
485
486
+ it ( 'decorates toolkit with boolean' , async ( ) => {
487
+
488
+ const server = Hapi . server ( ) ;
489
+
490
+ const isOk = true ;
491
+
492
+ server . decorate ( 'toolkit' , 'isOk' , isOk ) ;
493
+
494
+ server . route ( {
495
+ method : 'GET' ,
496
+ path : '/' ,
497
+ handler : ( request , h ) => h . isOk
498
+ } ) ;
499
+
500
+ const res = await server . inject ( '/' ) ;
501
+ expect ( res . statusCode ) . to . equal ( 200 ) ;
502
+ expect ( res . result ) . to . equal ( true ) ;
503
+ } ) ;
504
+
447
505
it ( 'add new handler' , async ( ) => {
448
506
449
507
const test = {
@@ -559,6 +617,30 @@ describe('Server', () => {
559
617
expect ( res . result ) . to . equal ( 'ok' ) ;
560
618
} ) ;
561
619
620
+ it ( 'decorates server with Map' , async ( ) => {
621
+
622
+ const server = Hapi . server ( ) ;
623
+
624
+ const plants = new Map ( ) ;
625
+ plants . set ( 'mango' , 'Mango' ) ;
626
+ plants . set ( 'banana' , 'Banana' ) ;
627
+ plants . set ( 'apple' , 'Apple' ) ;
628
+
629
+ server . decorate ( 'server' , 'plants' , plants ) ;
630
+
631
+ server . route ( {
632
+ method : 'GET' ,
633
+ path : '/' ,
634
+ handler : ( request ) => request . server . plants
635
+ } ) ;
636
+
637
+ const res = await server . inject ( '/' ) ;
638
+ expect ( res . statusCode ) . to . equal ( 200 ) ;
639
+ expect ( res . result . get ( 'mango' ) ) . to . equal ( 'Mango' ) ;
640
+ expect ( res . result . get ( 'banana' ) ) . to . equal ( 'Banana' ) ;
641
+ expect ( res . result . get ( 'apple' ) ) . to . equal ( 'Apple' ) ;
642
+ } ) ;
643
+
562
644
it ( 'throws on double server decoration' , ( ) => {
563
645
564
646
const server = Hapi . server ( ) ;
0 commit comments