@@ -7,14 +7,19 @@ import qs from 'qs';
77import { Get } from '../../src/decorator/Get' ;
88import { JsonController } from '../../src/decorator/JsonController' ;
99import { QueryParam } from '../../src/decorator/QueryParam' ;
10- import { createExpressServer , getMetadataArgsStorage , ResponseClassTransformOptions , RoutingControllersOptions } from '../../src/index' ;
10+ import {
11+ createExpressServer ,
12+ getMetadataArgsStorage ,
13+ ResponseClassTransformOptions ,
14+ RoutingControllersOptions ,
15+ } from '../../src/index' ;
1116import { axios } from '../utilities/axios' ;
1217import DoneCallback = jest . DoneCallback ;
1318
1419describe ( `` , ( ) => {
1520 let expressServer : HttpServer ;
1621 let requestFilter : UserFilter ;
17-
22+
1823 class UserFilter {
1924 @Length ( 5 , 15 )
2025 keyword : string ;
@@ -64,12 +69,12 @@ describe(``, () => {
6469 expect . assertions ( 4 ) ;
6570 const response = await axios . get (
6671 '/user?' +
67- qs . stringify ( {
68- filter : {
69- keyword : 'Um' ,
70- __somethingPrivate : 'blablabla' ,
71- } ,
72- } )
72+ qs . stringify ( {
73+ filter : {
74+ keyword : 'Um' ,
75+ __somethingPrivate : 'blablabla' ,
76+ } ,
77+ } )
7378 ) ;
7479 expect ( response . status ) . toEqual ( HttpStatusCodes . OK ) ;
7580 expect ( response . data ) . toEqual ( {
@@ -87,138 +92,130 @@ describe(``, () => {
8792 } ) ;
8893
8994 describe ( 'global options' , ( ) => {
90-
91- describe ( "should merge local validation options with global validation options prioritizing local" , ( ) => {
92-
93- beforeEach ( ( done ) => {
95+ describe ( 'should merge local validation options with global validation options prioritizing local' , ( ) => {
96+ beforeEach ( done => {
9497 requestFilter = undefined ;
95- getMetadataArgsStorage ( ) . reset ( ) ;
96-
98+ getMetadataArgsStorage ( ) . reset ( ) ;
99+
97100 @JsonController ( )
98101 class ClassTransformUserController {
99-
100- @Get ( "/user" )
101- getUsers ( @QueryParam ( "filter" , { validate : { skipMissingProperties : false } } ) filter : UserFilter ) : any {
102- requestFilter = filter ;
103- const user = new UserModel ( ) ;
104- user . id = 1 ;
105- user . _firstName = "Umed" ;
106- user . _lastName = "Khudoiberdiev" ;
107- return user ;
108- }
102+ @Get ( '/user' )
103+ getUsers ( @QueryParam ( 'filter' , { validate : { skipMissingProperties : false } } ) filter : UserFilter ) : any {
104+ requestFilter = filter ;
105+ const user = new UserModel ( ) ;
106+ user . id = 1 ;
107+ user . _firstName = 'Umed' ;
108+ user . _lastName = 'Khudoiberdiev' ;
109+ return user ;
110+ }
109111 }
110112
111113 const options : RoutingControllersOptions = {
112114 validation : {
113115 whitelist : true ,
114- skipMissingProperties : true
115- }
116+ skipMissingProperties : true ,
117+ } ,
116118 } ;
117119
118- expressServer = createExpressServer ( options ) . listen ( 3001 , done )
120+ expressServer = createExpressServer ( options ) . listen ( 3001 , done ) ;
119121 } ) ;
120122
121-
122123 afterEach ( done => {
123- expressServer . close ( done )
124+ expressServer . close ( done ) ;
124125 } ) ;
125126
126127 it ( `succeed` , async ( ) => {
127128 const response = await axios . get (
128129 '/user?' +
129- qs . stringify ( {
130- filter : {
131- keyword : 'aValidKeyword' ,
132- notKeyword : 'Um' ,
133- __somethingPrivate : 'blablabla' ,
134- } ,
135- } )
130+ qs . stringify ( {
131+ filter : {
132+ keyword : 'aValidKeyword' ,
133+ notKeyword : 'Um' ,
134+ __somethingPrivate : 'blablabla' ,
135+ } ,
136+ } )
136137 ) ;
137138 expect ( response . status ) . toEqual ( 200 ) ;
138139 expect ( requestFilter ) . toEqual ( {
139- keyword : " aValidKeyword"
140+ keyword : ' aValidKeyword' ,
140141 } ) ;
141- } )
142+ } ) ;
142143 } ) ;
143144
144- describe ( " should pass the valid param after validation" , ( ) => {
145- beforeEach ( ( done ) => {
145+ describe ( ' should pass the valid param after validation' , ( ) => {
146+ beforeEach ( done => {
146147 requestFilter = undefined ;
147148 getMetadataArgsStorage ( ) . reset ( ) ;
148149
149150 @JsonController ( )
150151 class UserController {
151-
152- @Get ( "/user" )
153- getUsers ( @QueryParam ( "filter" ) filter : UserFilter ) : any {
152+ @Get ( '/user' )
153+ getUsers ( @QueryParam ( 'filter' ) filter : UserFilter ) : any {
154154 requestFilter = filter ;
155155 const user = new UserModel ( ) ;
156156 user . id = 1 ;
157- user . _firstName = " Umed" ;
158- user . _lastName = " Khudoiberdiev" ;
157+ user . _firstName = ' Umed' ;
158+ user . _lastName = ' Khudoiberdiev' ;
159159 return user ;
160160 }
161161 }
162162
163163 const options : RoutingControllersOptions = {
164- validation : true
164+ validation : true ,
165165 } ;
166166
167- expressServer = createExpressServer ( options ) . listen ( 3001 , done )
167+ expressServer = createExpressServer ( options ) . listen ( 3001 , done ) ;
168168 } ) ;
169169
170170 afterEach ( done => {
171- expressServer . close ( done )
171+ expressServer . close ( done ) ;
172172 } ) ;
173173
174174 it ( `succeed` , async ( ) => {
175175 const response = await axios . get (
176176 '/user?' +
177- qs . stringify ( {
178- filter : {
179- keyword : 'aValidKeyword' ,
180- notKeyword : 'Um' ,
181- __somethingPrivate : 'blablabla' ,
182- } ,
183- } )
177+ qs . stringify ( {
178+ filter : {
179+ keyword : 'aValidKeyword' ,
180+ notKeyword : 'Um' ,
181+ __somethingPrivate : 'blablabla' ,
182+ } ,
183+ } )
184184 ) ;
185185
186186 expect ( response . status ) . toEqual ( 200 ) ;
187187 expect ( response . data ) . toMatchObject ( {
188188 id : 1 ,
189- _firstName : " Umed" ,
190- _lastName : " Khudoiberdiev"
189+ _firstName : ' Umed' ,
190+ _lastName : ' Khudoiberdiev' ,
191191 } ) ;
192192 expect ( requestFilter ) . toBeInstanceOf ( UserFilter ) ;
193193 expect ( requestFilter ) . toMatchObject ( {
194- keyword : " aValidKeyword" ,
195- __somethingPrivate : " blablabla" ,
194+ keyword : ' aValidKeyword' ,
195+ __somethingPrivate : ' blablabla' ,
196196 } ) ;
197- } )
197+ } ) ;
198198
199199 it ( 'should contain param name on validation failed' , async ( ) => {
200200 expect . assertions ( 2 ) ;
201201 try {
202202 await axios . get (
203203 '/user?' +
204- qs . stringify ( {
205- filter : {
206- keyword : 'Um' ,
207- __somethingPrivate : 'blablabla' ,
208- } ,
209- } )
210- ) ;
211- }
212- catch ( error ) {
204+ qs . stringify ( {
205+ filter : {
206+ keyword : 'Um' ,
207+ __somethingPrivate : 'blablabla' ,
208+ } ,
209+ } )
210+ ) ;
211+ } catch ( error ) {
213212 expect ( error . response . status ) . toEqual ( HttpStatusCodes . BAD_REQUEST ) ;
214213 expect ( error . response . data . errors [ 0 ] . property ) . toBe ( `keyword` ) ;
215214 }
216-
217215 } ) ;
218216 } ) ; // ----- end global options
219217 } ) ;
220218
221-
222219 describe ( 'local options' , ( ) => {
223220 let requestFilter : UserFilter ;
224221
@@ -253,12 +250,12 @@ describe(``, () => {
253250 expect . assertions ( 4 ) ;
254251 const response = await axios . get (
255252 '/user?' +
256- qs . stringify ( {
257- filter : {
258- keyword : 'Um' ,
259- __somethingPrivate : 'blablabla' ,
260- } ,
261- } )
253+ qs . stringify ( {
254+ filter : {
255+ keyword : 'Um' ,
256+ __somethingPrivate : 'blablabla' ,
257+ } ,
258+ } )
262259 ) ;
263260 expect ( response . status ) . toEqual ( HttpStatusCodes . OK ) ;
264261 expect ( response . data ) . toEqual ( {
@@ -271,4 +268,4 @@ describe(``, () => {
271268 } ) ;
272269 } ) ;
273270 } ) ; //----- end local options
274- } ) ;
271+ } ) ;
0 commit comments