@@ -18,6 +18,16 @@ const createdID = []
18
18
let verification = ''
19
19
let verificationForgot = ''
20
20
const email = faker . internet . email ( )
21
+ const failedLoginAttempts = 5
22
+ const badUser = {
23
+ name : 'Bad user' ,
24
+
25
+ password : '54321'
26
+ }
27
+ const badLoginDetails = {
28
+
29
+ password : '12345'
30
+ }
21
31
22
32
chai . use ( chaiHttp )
23
33
@@ -180,6 +190,70 @@ describe('*********** AUTH ***********', () => {
180
190
} )
181
191
} )
182
192
193
+ describe ( '/POST register' , ( ) => {
194
+ it ( 'it should POST register' , ( done ) => {
195
+ chai
196
+ . request ( server )
197
+ . post ( '/register' )
198
+ . send ( badUser )
199
+ . end ( ( err , res ) => {
200
+ res . should . have . status ( 201 )
201
+ res . body . should . be . an ( 'object' )
202
+ res . body . should . include . keys ( 'token' , 'user' )
203
+ createdID . push ( res . body . user . _id )
204
+ done ( )
205
+ } )
206
+ } )
207
+ } )
208
+
209
+ describe ( '/POST login' , ( ) => {
210
+ for ( let x = 1 ; x < failedLoginAttempts + 1 ; x ++ ) {
211
+ it ( `it should NOT POST login after password fail #${ x } ` , ( done ) => {
212
+ chai
213
+ . request ( server )
214
+ . post ( '/login' )
215
+ . send ( badLoginDetails )
216
+ . end ( ( err , res ) => {
217
+ res . should . have . status ( 409 )
218
+ res . body . should . be . a ( 'object' )
219
+ res . body . should . have . property ( 'errors' ) . that . has . property ( 'msg' )
220
+ res . body . errors . should . have . property ( 'msg' ) . eql ( 'WRONG_PASSWORD' )
221
+ done ( )
222
+ } )
223
+ } )
224
+ }
225
+
226
+ it ( 'it should NOT POST login after password fail #6 and be blocked' , ( done ) => {
227
+ chai
228
+ . request ( server )
229
+ . post ( '/login' )
230
+ . send ( badLoginDetails )
231
+ . end ( ( err , res ) => {
232
+ res . should . have . status ( 409 )
233
+ res . body . should . be . a ( 'object' )
234
+ res . body . should . have . property ( 'errors' ) . that . has . property ( 'msg' )
235
+ res . body . errors . should . have . property ( 'msg' ) . eql ( 'BLOCKED_USER' )
236
+ done ( )
237
+ } )
238
+ } )
239
+
240
+ it ( 'it should NOT POST login after being blocked sending post with correct password' , ( done ) => {
241
+ chai
242
+ . request ( server )
243
+ . post ( '/login' )
244
+ . send ( {
245
+ email : badUser . email ,
246
+ password : badUser . password
247
+ } )
248
+ . end ( ( err , res ) => {
249
+ res . should . have . status ( 409 )
250
+ res . body . should . be . a ( 'object' )
251
+ res . body . should . have . property ( 'errors' ) . that . has . property ( 'msg' )
252
+ res . body . errors . should . have . property ( 'msg' ) . eql ( 'BLOCKED_USER' )
253
+ done ( )
254
+ } )
255
+ } )
256
+ } )
183
257
after ( ( ) => {
184
258
createdID . forEach ( ( id ) => {
185
259
User . findByIdAndRemove ( id , ( err ) => {
0 commit comments