@@ -29,7 +29,7 @@ import { createExpressServer, getMetadataArgsStorage } from '../../src/index';
2929import { SessionMiddleware } from '../fakes/global-options/SessionMiddleware' ;
3030import { axios } from '../utilities/axios' ;
3131import DoneCallback = jest . DoneCallback ;
32- import { Type } from 'class-transformer' ;
32+ import { Type , Transform } from 'class-transformer' ;
3333
3434describe ( `` , ( ) => {
3535 let expressServer : HttpServer ;
@@ -128,6 +128,11 @@ describe(``, () => {
128128 @Type ( ( ) => Number )
129129 multipleNumberValues ?: number [ ] ;
130130
131+ @IsArray ( )
132+ @IsBoolean ( { each : true } )
133+ @Transform ( value => ( Array . isArray ( value ) ? value . map ( v => v !== 'false' ) : value !== 'false' ) )
134+ multipleBooleanValues ?: boolean [ ] ;
135+
131136 @IsArray ( )
132137 @IsDate ( { each : true } )
133138 @Type ( ( ) => Date )
@@ -533,7 +538,7 @@ describe(``, () => {
533538 */
534539
535540 it ( "@QueryParams should give a proper values from request's query parameters" , async ( ) => {
536- expect . assertions ( 9 ) ;
541+ expect . assertions ( 10 ) ;
537542 const response = await axios . get (
538543 '/photos-params?' +
539544 'sortBy=name&' +
@@ -544,6 +549,8 @@ describe(``, () => {
544549 'multipleStringValues=b&' +
545550 'multipleNumberValues=1&' +
546551 'multipleNumberValues=2.3&' +
552+ 'multipleBooleanValues=false&' +
553+ 'multipleBooleanValues=true&' +
547554 'multipleDateValues=2017-02-01T00:00:00Z&' +
548555 'multipleDateValues=2017-03-01T00:00:00Z'
549556 ) ;
@@ -555,14 +562,15 @@ describe(``, () => {
555562 expect ( queryParams1 . showAll ) . toEqual ( true ) ;
556563 expect ( queryParams1 . multipleStringValues ) . toEqual ( [ 'a' , 'b' ] ) ;
557564 expect ( queryParams1 . multipleNumberValues ) . toEqual ( [ 1 , 2.3 ] ) ;
565+ expect ( queryParams1 . multipleBooleanValues ) . toEqual ( [ false , true ] ) ;
558566 expect ( queryParams1 . multipleDateValues ) . toEqual ( [
559567 new Date ( '2017-02-01T00:00:00Z' ) ,
560568 new Date ( '2017-03-01T00:00:00Z' ) ,
561569 ] ) ;
562570 } ) ;
563571
564572 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 ) ;
566574 const response = await axios . get (
567575 '/photos-params?' +
568576 'sortBy=name&' +
@@ -571,6 +579,7 @@ describe(``, () => {
571579 'showAll&' +
572580 'multipleStringValues=a&' +
573581 'multipleNumberValues=1&' +
582+ 'multipleBooleanValues=true&' +
574583 'multipleDateValues=2017-02-01T01:00:00Z'
575584 ) ;
576585 expect ( response . status ) . toEqual ( HttpStatusCodes . OK ) ;
@@ -581,11 +590,12 @@ describe(``, () => {
581590 expect ( queryParams1 . showAll ) . toEqual ( true ) ;
582591 expect ( queryParams1 . multipleStringValues ) . toEqual ( [ 'a' ] ) ;
583592 expect ( queryParams1 . multipleNumberValues ) . toEqual ( [ 1 ] ) ;
593+ expect ( queryParams1 . multipleBooleanValues ) . toEqual ( [ true ] ) ;
584594 expect ( queryParams1 . multipleDateValues ) . toEqual ( [ new Date ( '2017-02-01T01:00:00Z' ) ] ) ;
585595 } ) ;
586596
587597 it ( "@QueryParams should give a proper values from request's query parameters with nested json" , async ( ) => {
588- expect . assertions ( 12 ) ;
598+ expect . assertions ( 13 ) ;
589599 const response = await axios . get (
590600 '/photos-params?' +
591601 'sortBy=name&' +
@@ -597,6 +607,8 @@ describe(``, () => {
597607 'multipleStringValues=b&' +
598608 'multipleNumberValues=1&' +
599609 'multipleNumberValues=2.3&' +
610+ 'multipleBooleanValues=false&' +
611+ 'multipleBooleanValues=true&' +
600612 'multipleDateValues=2017-02-01T00:00:00Z'
601613 ) ;
602614 expect ( response . status ) . toEqual ( HttpStatusCodes . OK ) ;
@@ -610,6 +622,7 @@ describe(``, () => {
610622 expect ( queryParams1 . myObject . isFive ) . toEqual ( true ) ;
611623 expect ( queryParams1 . multipleStringValues ) . toEqual ( [ 'a' , 'b' ] ) ;
612624 expect ( queryParams1 . multipleNumberValues ) . toEqual ( [ 1 , 2.3 ] ) ;
625+ expect ( queryParams1 . multipleBooleanValues ) . toEqual ( [ false , true ] ) ;
613626 expect ( queryParams1 . multipleDateValues ) . toEqual ( [ new Date ( '2017-02-01T00:00:00Z' ) ] ) ;
614627 } ) ;
615628
0 commit comments