@@ -362,6 +362,110 @@ describe("Extension Requests", function () {
362362 } ) ;
363363 } ) ;
364364
365+ describe ( "GET /extension-requests/user/:userId" , function ( ) {
366+ it ( "should return success response and extension request of the authenticated user" , function ( done ) {
367+ chai
368+ . request ( app )
369+ . get ( `/extension-requests/user/${ appOwner . id } ?dev=true` )
370+ . set ( "cookie" , `${ cookieName } =${ appOwnerjwt } ` )
371+ . end ( ( err , res ) => {
372+ if ( err ) {
373+ return done ( err ) ;
374+ }
375+
376+ expect ( res ) . to . have . status ( 200 ) ;
377+ expect ( res . body ) . to . be . a ( "object" ) ;
378+ expect ( res . body . message ) . to . be . equal ( "Extension Requests returned successfully!" ) ;
379+ expect ( res . body . allExtensionRequests ) . to . be . a ( "array" ) ;
380+ expect ( res . body . allExtensionRequests [ 0 ] . assignee ) . to . equal ( appOwner . username ) ;
381+ expect ( [ extensionRequestId1 , extensionRequestId2 ] ) . contains ( res . body . allExtensionRequests [ 0 ] . id ) ;
382+ expect ( [ extensionRequestId1 , extensionRequestId2 ] ) . contains ( res . body . allExtensionRequests [ 1 ] . id ) ;
383+ expect ( res . body . allExtensionRequests [ 1 ] . assignee ) . to . equal ( appOwner . username ) ;
384+ return done ( ) ;
385+ } ) ;
386+ } ) ;
387+
388+ it ( "should return success response and all extension requests with query params" , function ( done ) {
389+ chai
390+ . request ( app )
391+ . get ( `/extension-requests/user/${ appOwner . id } ?dev=true` )
392+ . query ( { taskId : taskId2 , status : "APPROVED" } )
393+ . set ( "cookie" , `${ cookieName } =${ appOwnerjwt } ` )
394+ . end ( ( err , res ) => {
395+ if ( err ) {
396+ return done ( err ) ;
397+ }
398+
399+ expect ( res ) . to . have . status ( 200 ) ;
400+ expect ( res . body ) . to . be . a ( "object" ) ;
401+ expect ( res . body . message ) . to . be . equal ( "Extension Requests returned successfully!" ) ;
402+ expect ( res . body . allExtensionRequests ) . to . be . a ( "array" ) ;
403+ expect ( res . body . allExtensionRequests [ 0 ] . assignee ) . to . equal ( appOwner . username ) ;
404+ expect ( res . body . allExtensionRequests [ 0 ] . id ) . to . equal ( extensionRequestId2 ) ;
405+ return done ( ) ;
406+ } ) ;
407+ } ) ;
408+
409+ it ( "should return success response and an empty array of extensionRequest if assignee is not same as latest one" , function ( done ) {
410+ chai
411+ . request ( app )
412+ . get ( `/extension-requests/user/${ appOwner . id } ?dev=true` )
413+ . query ( { taskId : taskId7 } )
414+ . set ( "cookie" , `${ cookieName } =${ appOwnerjwt } ` )
415+ . end ( ( err , res ) => {
416+ if ( err ) {
417+ return done ( err ) ;
418+ }
419+
420+ expect ( res ) . to . have . status ( 200 ) ;
421+ expect ( res . body ) . to . be . a ( "object" ) ;
422+ expect ( res . body . message ) . to . be . equal ( "Extension Requests returned successfully!" ) ;
423+ expect ( res . body . allExtensionRequests ) . to . be . a ( "array" ) . with . lengthOf ( 0 ) ;
424+ return done ( ) ;
425+ } ) ;
426+ } ) ;
427+
428+ it ( "should return success response and a single latestExtensionRequest if assignee same as latest one" , function ( done ) {
429+ chai
430+ . request ( app )
431+ . get ( `/extension-requests/user/${ appOwner . id } ?dev=true` )
432+ . query ( { taskId : taskId2 } )
433+ . set ( "cookie" , `${ cookieName } =${ appOwnerjwt } ` )
434+ . end ( ( err , res ) => {
435+ if ( err ) {
436+ return done ( err ) ;
437+ }
438+
439+ expect ( res ) . to . have . status ( 200 ) ;
440+ expect ( res . body ) . to . be . a ( "object" ) ;
441+ expect ( res . body . message ) . to . be . equal ( "Extension Requests returned successfully!" ) ;
442+ expect ( res . body . allExtensionRequests ) . to . be . a ( "array" ) . with . lengthOf ( 1 ) ;
443+ return done ( ) ;
444+ } ) ;
445+ } ) ;
446+
447+ it ( "Should return 401 if not logged in" , function ( done ) {
448+ chai
449+ . request ( app )
450+ . get ( `/extension-requests/user/${ appOwner . id } ?dev=true` )
451+ . end ( ( err , res ) => {
452+ if ( err ) {
453+ return done ( ) ;
454+ }
455+
456+ expect ( res ) . to . have . status ( 401 ) ;
457+ expect ( res . body ) . to . be . an ( "object" ) ;
458+ expect ( res . body ) . to . eql ( {
459+ statusCode : 401 ,
460+ error : "Unauthorized" ,
461+ message : "Unauthenticated User" ,
462+ } ) ;
463+
464+ return done ( ) ;
465+ } ) ;
466+ } ) ;
467+ } ) ;
468+
365469 describe ( "POST /extension-requests - creates a new extension requests" , function ( ) {
366470 it ( "Should return success response after adding the extension request" , function ( done ) {
367471 chai
0 commit comments