@@ -300,6 +300,19 @@ describe('Tests the Extension Requests Screen', () => {
300
300
} ,
301
301
body : JSON . stringify ( extensionRequestLogs [ 'fuQs71a0Y7BX3n4rc5Ii' ] ) ,
302
302
} ) ;
303
+ } else if (
304
+ url ===
305
+ 'https://api.realdevsquad.com/extension-requests/fuQs71a0Y7BX3n4rc5Ii?dev=true'
306
+ ) {
307
+ interceptedRequest . respond ( {
308
+ status : 200 ,
309
+ contentType : 'application/json' ,
310
+ headers : {
311
+ 'Access-Control-Allow-Origin' : '*' ,
312
+ 'Access-Control-Allow-Methods' : 'GET, POST, PUT, DELETE, OPTIONS' ,
313
+ 'Access-Control-Allow-Headers' : 'Content-Type, Authorization' ,
314
+ } ,
315
+ } ) ;
303
316
} else if (
304
317
url ===
305
318
'https://api.realdevsquad.com/logs/extensionRequests/?meta.extensionRequestId=lw7dRB0I3a6ivsFR5Izs&dev=true'
@@ -779,4 +792,60 @@ describe('Tests the Extension Requests Screen', () => {
779
792
) ;
780
793
expect ( cardNumber2Value ) . toBe ( '1' ) ;
781
794
} ) ;
795
+
796
+ it ( 'Validating if audit logs are being generated in realtime' , async ( ) => {
797
+ // Visit extension request under dev flag
798
+ await page . goto ( 'http://localhost:8000/extension-requests/?dev=true' ) ;
799
+ const extensionRequestIds = [
800
+ 'log-container-fuQs71a0Y7BX3n4rc5Ii' ,
801
+ 'log-container-lw7dRB0I3a6ivsFR5Izs' ,
802
+ ] ;
803
+
804
+ // Select all types of status of extension requests
805
+ await page . click ( '#filter-button' ) ;
806
+ await page . click ( 'input[value="APPROVED"]' ) ;
807
+ await page . click ( 'input[value="DENIED"]' ) ;
808
+ await page . click ( '#apply-filter-button' ) ;
809
+ await page . waitForNetworkIdle ( ) ;
810
+
811
+ // Checking if both the extension request cards are renedered or not
812
+ const cardsList = await page . $$ ( '.extension-card' ) ;
813
+ expect ( cardsList . length ) . toBe ( 2 ) ;
814
+
815
+ const accordionButton = await page . $$ ( '.accordion' ) ;
816
+ // Validate first extension card which is based on updated logs
817
+ accordionButton [ 0 ] . click ( ) ;
818
+ await page . waitForNetworkIdle ( ) ;
819
+ let extensionLogsForFirstER = await page . $ ( `#${ extensionRequestIds [ 0 ] } ` ) ;
820
+ let logs = await extensionLogsForFirstER . $$ ( '.log-div' ) ;
821
+
822
+ // Click the first element with class '.edit-button'
823
+ await page . $$eval ( '.edit-button' , ( buttons ) => buttons [ 0 ] . click ( ) ) ;
824
+ const newTitle = 'This is a new title test case' ;
825
+ const newDate = '2024-09-19T22:20' ;
826
+ const newReason = 'This is the new reason' ;
827
+
828
+ // Updating all the input fields
829
+ await page . $$eval (
830
+ '.title-text-input' ,
831
+ ( inputFields , newTitle ) => ( inputFields [ 0 ] . value = newTitle ) ,
832
+ newTitle ,
833
+ ) ;
834
+ await page . $$eval (
835
+ '.date-input' ,
836
+ ( inputFields , newDate ) => ( inputFields [ 0 ] . value = newDate ) ,
837
+ newDate ,
838
+ ) ;
839
+ await page . $$eval (
840
+ '.input-text-area' ,
841
+ ( inputFields , newReason ) => ( inputFields [ 0 ] . value = newReason ) ,
842
+ newReason ,
843
+ ) ;
844
+
845
+ await page . $$eval ( '.update-button' , ( buttons ) => buttons [ 0 ] . click ( ) ) ;
846
+ await page . waitForTimeout ( 1100 ) ;
847
+ await page . waitForNetworkIdle ( ) ;
848
+ logs = await extensionLogsForFirstER . $$ ( '.log-div' ) ;
849
+ expect ( Array . from ( logs ) . length ) . toBe ( 9 ) ;
850
+ } ) ;
782
851
} ) ;
0 commit comments