@@ -15,6 +15,8 @@ import {
15
15
validOooStatusRequests ,
16
16
validOooStatusUpdate ,
17
17
createOooRequests2 ,
18
+ acknowledgeOooRequest ,
19
+ createOooRequests3 ,
18
20
} from "../fixtures/oooRequest/oooRequest" ;
19
21
import { createRequest , updateRequest } from "../../models/requests" ;
20
22
import {
@@ -27,6 +29,8 @@ import {
27
29
REQUEST_ALREADY_PENDING ,
28
30
REQUEST_REJECTED_SUCCESSFULLY ,
29
31
REQUEST_ALREADY_REJECTED ,
32
+ INVALID_REQUEST_TYPE ,
33
+ // UNAUTHORIZED_TO_ACKNOWLEDGE_OOO_REQUEST,
30
34
UNAUTHORIZED_TO_CREATE_OOO_REQUEST ,
31
35
USER_STATUS_NOT_FOUND ,
32
36
OOO_STATUS_ALREADY_EXIST ,
@@ -36,6 +40,7 @@ import { validTaskAssignmentRequest, validTaskCreqtionRequest } from "../fixture
36
40
import { deleteUserStatus , updateUserStatus } from "../../models/userStatus" ;
37
41
import * as requestsQuery from "../../models/requests" ;
38
42
import { userState } from "../../constants/userStatus" ;
43
+ import * as logUtils from "../../services/logService" ;
39
44
40
45
const userData = userDataFixture ( ) ;
41
46
chai . use ( chaiHttp ) ;
@@ -48,6 +53,7 @@ let approvedOooRequestId: string;
48
53
let oooRequestData : any ;
49
54
let oooRequestData2 : any ;
50
55
let testUserId : string ;
56
+ let testSuperUserId : string ;
51
57
let testArchivedUserId : string ;
52
58
53
59
describe ( "/requests OOO" , function ( ) {
@@ -58,6 +64,7 @@ describe("/requests OOO", function () {
58
64
const userIdPromises = [ addUser ( userData [ 16 ] ) , addUser ( userData [ 4 ] ) , addUser ( userData [ 18 ] ) ] ;
59
65
const [ userId , superUserId , archivedUserId ] = await Promise . all ( userIdPromises ) ;
60
66
testUserId = userId ;
67
+ testSuperUserId = superUserId ;
61
68
testArchivedUserId = archivedUserId ;
62
69
63
70
oooRequestData = { ...createOooRequests , requestedBy : userId } ;
@@ -316,6 +323,189 @@ describe("/requests OOO", function () {
316
323
} ) ;
317
324
} ) ;
318
325
326
+ describe . skip ( "PATCH /requests/:id" , function ( ) {
327
+ let testOooRequest ;
328
+ let onboardingRequest ;
329
+ let approvedOooRequest ;
330
+ let rejectedOooRequest ;
331
+
332
+ beforeEach ( async function ( ) {
333
+
334
+ oooRequestData = { ...createOooRequests3 , userId : testUserId } ;
335
+ testOooRequest = await createRequest ( oooRequestData ) ;
336
+
337
+ onboardingRequest = await createRequest ( {
338
+ type : REQUEST_TYPE . ONBOARDING ,
339
+ numberOfDays : 5 ,
340
+ reason : "This is the reason" ,
341
+ userId : testUserId ,
342
+ } ) ;
343
+
344
+ const pendingOooRequest1 = await createRequest ( oooRequestData ) ;
345
+ approvedOooRequest = await updateRequest ( pendingOooRequest1 . id , { status : REQUEST_STATE . APPROVED } , testSuperUserId , REQUEST_TYPE . OOO ) ;
346
+
347
+ const pendingOooRequest2 = await createRequest ( oooRequestData ) ;
348
+ rejectedOooRequest = await updateRequest ( pendingOooRequest2 . id , { status : REQUEST_STATE . REJECTED } , testSuperUserId , REQUEST_TYPE . OOO ) ;
349
+ } ) ;
350
+
351
+ it ( "should return 401 if user is not logged in" , function ( done ) {
352
+ chai
353
+ . request ( app )
354
+ . patch ( `/requests/${ testOooRequest . id } ?dev=true` )
355
+ . send ( acknowledgeOooRequest )
356
+ . end ( function ( err , res ) {
357
+ expect ( res ) . to . have . status ( 401 ) ;
358
+ expect ( res . body . error ) . to . equal ( "Unauthorized" ) ;
359
+ expect ( res . body . message ) . to . equal ( "Unauthenticated User" ) ;
360
+ done ( ) ;
361
+ } ) ;
362
+ } ) ;
363
+
364
+ it ( "should return 501 and 'Feature not implemented' message when dev is false" , function ( done ) {
365
+ chai
366
+ . request ( app )
367
+ . patch ( `/requests/${ testOooRequest . id } ?dev=false` )
368
+ . set ( "cookie" , `${ cookieName } =${ superUserToken } ` )
369
+ . send ( acknowledgeOooRequest )
370
+ . end ( function ( err , res ) {
371
+ if ( err ) {
372
+ return done ( err ) ;
373
+ }
374
+ expect ( res . statusCode ) . to . equal ( 501 ) ;
375
+ expect ( res . body . message ) . to . equal ( "Feature not implemented" ) ;
376
+ done ( ) ;
377
+ } ) ;
378
+ } ) ;
379
+
380
+ it ( "should return 404 if request does not exist" , function ( done ) {
381
+ chai
382
+ . request ( app )
383
+ . patch ( `/requests/11111111111111?dev=true` )
384
+ . set ( "cookie" , `${ cookieName } =${ superUserToken } ` )
385
+ . send ( acknowledgeOooRequest )
386
+ . end ( function ( err , res ) {
387
+ if ( err ) {
388
+ return done ( err ) ;
389
+ }
390
+ expect ( res . statusCode ) . to . equal ( 404 ) ;
391
+ expect ( res . body . message ) . to . equal ( REQUEST_DOES_NOT_EXIST ) ;
392
+ done ( ) ;
393
+ } ) ;
394
+ } ) ;
395
+
396
+ it ( "should return 403 if user does not have super user permission" , function ( done ) {
397
+ chai
398
+ . request ( app )
399
+ . patch ( `/requests/${ testOooRequest . id } ?dev=true` )
400
+ . set ( "cookie" , `${ cookieName } =${ authToken } ` )
401
+ . send ( acknowledgeOooRequest )
402
+ . end ( function ( err , res ) {
403
+ if ( err ) {
404
+ return done ( err ) ;
405
+ }
406
+ expect ( res . statusCode ) . to . equal ( 403 ) ;
407
+ // expect(res.body.message).to.equal(UNAUTHORIZED_TO_ACKNOWLEDGE_OOO_REQUEST);
408
+ done ( ) ;
409
+ } ) ;
410
+ } ) ;
411
+
412
+ it ( "should return 409 if OOO request is already approved" , function ( done ) {
413
+ chai
414
+ . request ( app )
415
+ . patch ( `/requests/${ approvedOooRequest . id } ?dev=true` )
416
+ . set ( "cookie" , `${ cookieName } =${ superUserToken } ` )
417
+ . send ( acknowledgeOooRequest )
418
+ . end ( function ( err , res ) {
419
+ if ( err ) {
420
+ return done ( err ) ;
421
+ }
422
+ expect ( res . statusCode ) . to . equal ( 409 ) ;
423
+ expect ( res . body . message ) . to . equal ( REQUEST_ALREADY_APPROVED ) ;
424
+ done ( ) ;
425
+ } ) ;
426
+ } ) ;
427
+
428
+ it ( "should return 409 if OOO request is already rejected" , function ( done ) {
429
+ chai
430
+ . request ( app )
431
+ . patch ( `/requests/${ rejectedOooRequest . id } ?dev=true` )
432
+ . set ( "cookie" , `${ cookieName } =${ superUserToken } ` )
433
+ . send ( acknowledgeOooRequest )
434
+ . end ( function ( err , res ) {
435
+ if ( err ) {
436
+ return done ( err ) ;
437
+ }
438
+ expect ( res . statusCode ) . to . equal ( 409 ) ;
439
+ expect ( res . body . message ) . to . equal ( REQUEST_ALREADY_REJECTED ) ;
440
+ done ( ) ;
441
+ } ) ;
442
+ } ) ;
443
+
444
+ it ( "should return 400 when the request type for the given ID is not 'OOO'" , function ( done ) {
445
+ chai
446
+ . request ( app )
447
+ . patch ( `/requests/${ onboardingRequest . id } ?dev=true` )
448
+ . set ( "cookie" , `${ cookieName } =${ superUserToken } ` )
449
+ . send ( acknowledgeOooRequest )
450
+ . end ( function ( err , res ) {
451
+ if ( err ) {
452
+ return done ( err ) ;
453
+ }
454
+ expect ( res . statusCode ) . to . equal ( 400 ) ;
455
+ expect ( res . body . message ) . to . equal ( INVALID_REQUEST_TYPE ) ;
456
+ done ( ) ;
457
+ } ) ;
458
+ } ) ;
459
+
460
+ it ( "should approve OOO request when dev is true" , function ( done ) {
461
+ chai
462
+ . request ( app )
463
+ . patch ( `/requests/${ testOooRequest . id } ?dev=true` )
464
+ . set ( "cookie" , `${ cookieName } =${ superUserToken } ` )
465
+ . send ( acknowledgeOooRequest )
466
+ . end ( function ( err , res ) {
467
+ if ( err ) {
468
+ return done ( err ) ;
469
+ }
470
+ expect ( res . statusCode ) . to . equal ( 200 ) ;
471
+ expect ( res . body . message ) . to . equal ( REQUEST_APPROVED_SUCCESSFULLY ) ;
472
+ done ( ) ;
473
+ } ) ;
474
+ } ) ;
475
+
476
+ it ( "should reject OOO request when dev is true" , function ( done ) {
477
+ chai
478
+ . request ( app )
479
+ . patch ( `/requests/${ testOooRequest . id } ?dev=true` )
480
+ . set ( "cookie" , `${ cookieName } =${ superUserToken } ` )
481
+ . send ( { ...acknowledgeOooRequest , status : REQUEST_STATE . REJECTED } )
482
+ . end ( function ( err , res ) {
483
+ if ( err ) {
484
+ return done ( err ) ;
485
+ }
486
+ expect ( res . statusCode ) . to . equal ( 200 ) ;
487
+ expect ( res . body . message ) . to . equal ( REQUEST_REJECTED_SUCCESSFULLY ) ;
488
+ done ( ) ;
489
+ } ) ;
490
+ } ) ;
491
+
492
+ it ( "should return 500 response for unexpected error" , function ( done ) {
493
+ sinon . stub ( logUtils , "addLog" ) . throws ( "Error" ) ;
494
+ chai
495
+ . request ( app )
496
+ . patch ( `/requests/${ testOooRequest . id } ?dev=true` )
497
+ . set ( "cookie" , `${ cookieName } =${ superUserToken } ` )
498
+ . send ( acknowledgeOooRequest )
499
+ . end ( function ( err , res ) {
500
+ if ( err ) return done ( err ) ;
501
+ expect ( res . statusCode ) . to . equal ( 500 ) ;
502
+ expect ( res . body . error ) . to . equal ( "Internal Server Error" ) ;
503
+ expect ( res . body . message ) . to . equal ( "An internal server error occurred" ) ;
504
+ done ( ) ;
505
+ } ) ;
506
+ } ) ;
507
+ } ) ;
508
+
319
509
describe ( "PUT /requests/:id" , function ( ) {
320
510
it ( "should return 401 if user is not logged in" , function ( done ) {
321
511
chai
0 commit comments