@@ -37,9 +37,13 @@ describe('App Component', () => {
37
37
headers,
38
38
body : JSON . stringify ( {
39
39
...filteredUsersData ,
40
- users : filteredUsersData . users . filter (
41
- ( user ) => user . roles . in_discord ,
42
- ) ,
40
+ ...mockUserData ,
41
+ users : [
42
+ ...filteredUsersData . users . filter (
43
+ ( user ) => user . roles . in_discord ,
44
+ ) ,
45
+ ...mockUserData . users . filter ( ( user ) => user . roles . in_discord ) ,
46
+ ] ,
43
47
} ) ,
44
48
} ) ;
45
49
} else if ( url === `${ API_BASE_URL } /users/search/?verified=true` ) {
@@ -49,9 +53,11 @@ describe('App Component', () => {
49
53
headers,
50
54
body : JSON . stringify ( {
51
55
...filteredUsersData ,
52
- users : filteredUsersData . users . filter ( ( user ) => user . discordId ) ,
53
56
...mockUserData ,
54
- users : mockUserData . users . filter ( ( user ) => user . discordId ) ,
57
+ users : [
58
+ ...filteredUsersData . users . filter ( ( user ) => user . discordId ) ,
59
+ ...mockUserData . users . filter ( ( user ) => user . discordId ) ,
60
+ ] ,
55
61
} ) ,
56
62
} ) ;
57
63
} else {
@@ -96,4 +102,48 @@ describe('App Component', () => {
96
102
const url = await page . url ( ) ;
97
103
expect ( url ) . toContain ( '?tab=verified' ) ;
98
104
} ) ;
105
+
106
+ it ( 'should handle user card clicks and apply active_tab class to clicked card only in discord tab' , async ( ) => {
107
+ await page . goto ( `${ BASE_URL } /users/discord/?tab=in_discord` ) ;
108
+ await page . waitForNetworkIdle ( ) ;
109
+ await page . waitForSelector ( '.user_card[data-key]' ) ;
110
+ const userCardTestIds = await page . $$eval (
111
+ '[data-testid^="user-card-"]' ,
112
+ ( cards ) => cards . map ( ( card ) => card . getAttribute ( 'data-testid' ) ) ,
113
+ ) ;
114
+ for ( let i = 0 ; i < userCardTestIds . length ; i ++ ) {
115
+ const userCardSelector = `[data-testid="${ userCardTestIds [ i ] } "]` ;
116
+ const userCardElement = await page . $ ( userCardSelector ) ;
117
+ await userCardElement . click ( ) ;
118
+ await page . waitForTimeout ( 1000 ) ;
119
+ const isActive = await page . evaluate ( ( selector ) => {
120
+ return document
121
+ . querySelector ( selector )
122
+ ?. classList . contains ( 'active_tab' ) ;
123
+ } , userCardSelector ) ;
124
+ expect ( isActive ) . toBe ( true ) ;
125
+ }
126
+ } ) ;
127
+
128
+ it ( 'should handle user card clicks and apply active_tab class to clicked card only verified tab' , async ( ) => {
129
+ await page . goto ( `${ BASE_URL } /users/discord/?tab=verified` ) ;
130
+ await page . waitForNetworkIdle ( ) ;
131
+ await page . waitForSelector ( '.user_card[data-key]' ) ;
132
+ const userCardTestIds = await page . $$eval (
133
+ '[data-testid^="user-card-"]' ,
134
+ ( cards ) => cards . map ( ( card ) => card . getAttribute ( 'data-testid' ) ) ,
135
+ ) ;
136
+ for ( let i = 0 ; i < userCardTestIds . length ; i ++ ) {
137
+ const userCardSelector = `[data-testid="${ userCardTestIds [ i ] } "]` ;
138
+ const userCardElement = await page . $ ( userCardSelector ) ;
139
+ await userCardElement . click ( ) ;
140
+ await page . waitForTimeout ( 1000 ) ;
141
+ const isActive = await page . evaluate ( ( selector ) => {
142
+ return document
143
+ . querySelector ( selector )
144
+ ?. classList . contains ( 'active_tab' ) ;
145
+ } , userCardSelector ) ;
146
+ expect ( isActive ) . toBe ( true ) ;
147
+ }
148
+ } ) ;
99
149
} ) ;
0 commit comments