@@ -21,7 +21,7 @@ const {
21
21
} = require ( '../../mock-data/users' ) ;
22
22
const { usersStatus } = require ( '../../mock-data/users-status' ) ;
23
23
const { taskDone, auditLogTasks } = require ( '../../mock-data/tasks/index' ) ;
24
-
24
+ const baseUrl = 'http://localhost:8000/extension-requests' ;
25
25
describe ( 'Tests the Extension Requests Screen' , ( ) => {
26
26
let browser ;
27
27
let page ;
@@ -46,7 +46,9 @@ describe('Tests the Extension Requests Screen', () => {
46
46
const url = interceptedRequest . url ( ) ;
47
47
if (
48
48
url ===
49
- 'https://api.realdevsquad.com/extension-requests?order=asc&size=5&q=status%3APENDING'
49
+ 'https://api.realdevsquad.com/extension-requests?order=asc&size=5&q=status%3APENDING' ||
50
+ url ===
51
+ 'https://api.realdevsquad.com/extension-requests?dev=true&order=asc'
50
52
) {
51
53
interceptedRequest . respond ( {
52
54
status : 200 ,
@@ -109,6 +111,19 @@ describe('Tests the Extension Requests Screen', () => {
109
111
} ,
110
112
body : JSON . stringify ( userSunny ) ,
111
113
} ) ;
114
+ } else if (
115
+ url === 'https://api.realdevsquad.com/users?search=randhir&size=1'
116
+ ) {
117
+ interceptedRequest . respond ( {
118
+ status : 200 ,
119
+ contentType : 'application/json' ,
120
+ headers : {
121
+ 'Access-Control-Allow-Origin' : '*' ,
122
+ 'Access-Control-Allow-Methods' : 'GET, POST, PUT, DELETE, OPTIONS' ,
123
+ 'Access-Control-Allow-Headers' : 'Content-Type, Authorization' ,
124
+ } ,
125
+ body : JSON . stringify ( userRandhir ) ,
126
+ } ) ;
112
127
} else if (
113
128
url ===
114
129
'https://api.realdevsquad.com/tasks/PYj79ki2agB0q5JN3kUf/details'
@@ -263,7 +278,9 @@ describe('Tests the Extension Requests Screen', () => {
263
278
} ) ;
264
279
} else if (
265
280
url ===
266
- 'https://api.realdevsquad.com/extension-requests?order=asc&size=5&q=status%3AAPPROVED%2BPENDING%2BDENIED'
281
+ 'https://api.realdevsquad.com/extension-requests?order=asc&size=5&q=status%3AAPPROVED%2BPENDING%2BDENIED' ||
282
+ url ===
283
+ 'https://api.realdevsquad.com/extension-requests?dev=true&order=asc&q=status%3AAPPROVED%2BDENIED'
267
284
) {
268
285
interceptedRequest . respond ( {
269
286
status : 200 ,
@@ -327,12 +344,26 @@ describe('Tests the Extension Requests Screen', () => {
327
344
} ,
328
345
body : JSON . stringify ( extensionRequestLogs [ 'lw7dRB0I3a6ivsFR5Izs' ] ) ,
329
346
} ) ;
347
+ } else if (
348
+ url ===
349
+ 'https://api.realdevsquad.com/extension-requests?order=asc&size=5&q=status%3AAPPROVED%2Cassignee%3AiODXB6gfsjaZB9p0XlBw%2B7yzVDl8s1ORNCtH9Ps7K'
350
+ ) {
351
+ interceptedRequest . respond ( {
352
+ status : 200 ,
353
+ contentType : 'application/json' ,
354
+ headers : {
355
+ 'Access-Control-Allow-Origin' : '*' ,
356
+ 'Access-Control-Allow-Methods' : 'GET, POST, PUT, DELETE, OPTIONS' ,
357
+ 'Access-Control-Allow-Headers' : 'Content-Type, Authorization' ,
358
+ } ,
359
+ body : JSON . stringify ( extensionRequestsListUserSearch ) ,
360
+ } ) ;
330
361
} else {
331
362
interceptedRequest . continue ( ) ;
332
363
}
333
364
} ) ;
334
365
335
- await page . goto ( 'http://localhost:8000/extension-requests' ) ;
366
+ await page . goto ( baseUrl ) ;
336
367
337
368
await page . waitForNetworkIdle ( ) ;
338
369
@@ -799,7 +830,7 @@ describe('Tests the Extension Requests Screen', () => {
799
830
const cardNumber1Value = await extensionRequestNumberContainer [ 1 ] . evaluate (
800
831
( node ) => node . textContent ,
801
832
) ;
802
- expect ( cardNumber1Value ) . toBe ( '5' ) ;
833
+ expect ( cardNumber1Value ) . toBe ( '# 5' ) ;
803
834
} ) ;
804
835
805
836
test ( 'Default Request Number to 1 if requestNumber field is missing in API Response' , async ( ) => {
@@ -816,7 +847,7 @@ describe('Tests the Extension Requests Screen', () => {
816
847
const cardNumber2Value = await extensionRequestNumberContainer [ 3 ] . evaluate (
817
848
( node ) => node . textContent ,
818
849
) ;
819
- expect ( cardNumber2Value ) . toBe ( '1' ) ;
850
+ expect ( cardNumber2Value ) . toBe ( '# 1' ) ;
820
851
} ) ;
821
852
822
853
it ( 'Validating if audit logs are being generated in realtime' , async ( ) => {
@@ -874,4 +905,41 @@ describe('Tests the Extension Requests Screen', () => {
874
905
logs = await extensionLogsForFirstER . $$ ( '.log-div' ) ;
875
906
expect ( Array . from ( logs ) . length ) . toBe ( 9 ) ;
876
907
} ) ;
908
+
909
+ it ( 'Should update page url when filters and usernames are changed' , async ( ) => {
910
+ await page . click ( '#filter-button' ) ;
911
+ await page . click ( 'input[value="PENDING"]' ) ;
912
+ await page . click ( 'input[value="APPROVED"]' ) ;
913
+ await page . click ( '#apply-filter-button' ) ;
914
+ await page . type ( '#assignee-search' , 'sunny,randhir' ) ;
915
+ await page . keyboard . press ( 'Enter' ) ;
916
+ await page . waitForNetworkIdle ( ) ;
917
+ const url = page . url ( ) ;
918
+ expect ( url ) . toBe (
919
+ `${ baseUrl } ?order=asc&size=5&q=status%3AAPPROVED%2Cassignee%3Asunny%2Brandhir` ,
920
+ ) ;
921
+ } ) ;
922
+ it ( 'Should have UI elements in sync with url' , async ( ) => {
923
+ await page . goto (
924
+ `${ baseUrl } /?order=asc&size=5&q=status%3AAPPROVED%2Cassignee%3Asunny%2Brandhir` ,
925
+ ) ;
926
+ const filterButton = await page . $ ( '#filter-button' ) ;
927
+ await filterButton . click ( ) ;
928
+ await page . waitForSelector ( '.filter-modal' ) ;
929
+ const approvedFilter = await page . $ ( 'input[value="APPROVED"]' ) ;
930
+ const currentState = await approvedFilter . getProperty ( 'checked' ) ;
931
+ const isApprovedChecked = await currentState . jsonValue ( ) ;
932
+ expect ( isApprovedChecked ) . toBe ( true ) ;
933
+ const searchText = await page . $eval (
934
+ '#assignee-search' ,
935
+ ( input ) => input . value ,
936
+ ) ;
937
+ expect ( searchText ) . toBe ( 'sunny,randhir' ) ;
938
+ await page . waitForSelector ( '.sort-button' ) ;
939
+ const ascSortIconDisplayStyle = await page . $eval (
940
+ '#asc-sort-icon' ,
941
+ ( icon ) => window . getComputedStyle ( icon ) . display ,
942
+ ) ;
943
+ expect ( ascSortIconDisplayStyle ) . toBe ( 'block' ) ;
944
+ } ) ;
877
945
} ) ;
0 commit comments