@@ -29,7 +29,7 @@ import { createExpressServer, getMetadataArgsStorage } from '../../src/index';
29
29
import { SessionMiddleware } from '../fakes/global-options/SessionMiddleware' ;
30
30
import { axios } from '../utilities/axios' ;
31
31
import DoneCallback = jest . DoneCallback ;
32
- import { Type } from 'class-transformer' ;
32
+ import { Type , Transform } from 'class-transformer' ;
33
33
34
34
describe ( `` , ( ) => {
35
35
let expressServer : HttpServer ;
@@ -128,6 +128,11 @@ describe(``, () => {
128
128
@Type ( ( ) => Number )
129
129
multipleNumberValues ?: number [ ] ;
130
130
131
+ @IsArray ( )
132
+ @IsBoolean ( { each : true } )
133
+ @Transform ( value => ( Array . isArray ( value ) ? value . map ( v => v !== 'false' ) : value !== 'false' ) )
134
+ multipleBooleanValues ?: boolean [ ] ;
135
+
131
136
@IsArray ( )
132
137
@IsDate ( { each : true } )
133
138
@Type ( ( ) => Date )
@@ -533,7 +538,7 @@ describe(``, () => {
533
538
*/
534
539
535
540
it ( "@QueryParams should give a proper values from request's query parameters" , async ( ) => {
536
- expect . assertions ( 9 ) ;
541
+ expect . assertions ( 10 ) ;
537
542
const response = await axios . get (
538
543
'/photos-params?' +
539
544
'sortBy=name&' +
@@ -544,6 +549,8 @@ describe(``, () => {
544
549
'multipleStringValues=b&' +
545
550
'multipleNumberValues=1&' +
546
551
'multipleNumberValues=2.3&' +
552
+ 'multipleBooleanValues=false&' +
553
+ 'multipleBooleanValues=true&' +
547
554
'multipleDateValues=2017-02-01T00:00:00Z&' +
548
555
'multipleDateValues=2017-03-01T00:00:00Z'
549
556
) ;
@@ -555,14 +562,15 @@ describe(``, () => {
555
562
expect ( queryParams1 . showAll ) . toEqual ( true ) ;
556
563
expect ( queryParams1 . multipleStringValues ) . toEqual ( [ 'a' , 'b' ] ) ;
557
564
expect ( queryParams1 . multipleNumberValues ) . toEqual ( [ 1 , 2.3 ] ) ;
565
+ expect ( queryParams1 . multipleBooleanValues ) . toEqual ( [ false , true ] ) ;
558
566
expect ( queryParams1 . multipleDateValues ) . toEqual ( [
559
567
new Date ( '2017-02-01T00:00:00Z' ) ,
560
568
new Date ( '2017-03-01T00:00:00Z' ) ,
561
569
] ) ;
562
570
} ) ;
563
571
564
572
it ( "@QueryParams should give a proper values from request's query parameters and one multiple value" , async ( ) => {
565
- expect . assertions ( 9 ) ;
573
+ expect . assertions ( 10 ) ;
566
574
const response = await axios . get (
567
575
'/photos-params?' +
568
576
'sortBy=name&' +
@@ -571,6 +579,7 @@ describe(``, () => {
571
579
'showAll&' +
572
580
'multipleStringValues=a&' +
573
581
'multipleNumberValues=1&' +
582
+ 'multipleBooleanValues=true&' +
574
583
'multipleDateValues=2017-02-01T01:00:00Z'
575
584
) ;
576
585
expect ( response . status ) . toEqual ( HttpStatusCodes . OK ) ;
@@ -581,11 +590,12 @@ describe(``, () => {
581
590
expect ( queryParams1 . showAll ) . toEqual ( true ) ;
582
591
expect ( queryParams1 . multipleStringValues ) . toEqual ( [ 'a' ] ) ;
583
592
expect ( queryParams1 . multipleNumberValues ) . toEqual ( [ 1 ] ) ;
593
+ expect ( queryParams1 . multipleBooleanValues ) . toEqual ( [ true ] ) ;
584
594
expect ( queryParams1 . multipleDateValues ) . toEqual ( [ new Date ( '2017-02-01T01:00:00Z' ) ] ) ;
585
595
} ) ;
586
596
587
597
it ( "@QueryParams should give a proper values from request's query parameters with nested json" , async ( ) => {
588
- expect . assertions ( 12 ) ;
598
+ expect . assertions ( 13 ) ;
589
599
const response = await axios . get (
590
600
'/photos-params?' +
591
601
'sortBy=name&' +
@@ -597,6 +607,8 @@ describe(``, () => {
597
607
'multipleStringValues=b&' +
598
608
'multipleNumberValues=1&' +
599
609
'multipleNumberValues=2.3&' +
610
+ 'multipleBooleanValues=false&' +
611
+ 'multipleBooleanValues=true&' +
600
612
'multipleDateValues=2017-02-01T00:00:00Z'
601
613
) ;
602
614
expect ( response . status ) . toEqual ( HttpStatusCodes . OK ) ;
@@ -610,6 +622,7 @@ describe(``, () => {
610
622
expect ( queryParams1 . myObject . isFive ) . toEqual ( true ) ;
611
623
expect ( queryParams1 . multipleStringValues ) . toEqual ( [ 'a' , 'b' ] ) ;
612
624
expect ( queryParams1 . multipleNumberValues ) . toEqual ( [ 1 , 2.3 ] ) ;
625
+ expect ( queryParams1 . multipleBooleanValues ) . toEqual ( [ false , true ] ) ;
613
626
expect ( queryParams1 . multipleDateValues ) . toEqual ( [ new Date ( '2017-02-01T00:00:00Z' ) ] ) ;
614
627
} ) ;
615
628
0 commit comments