@@ -67,6 +67,12 @@ jest.mock('@deriv-com/ui', () => ({
67
67
useDevice : jest . fn ( ( ) => ( { isMobile : true } ) ) ,
68
68
} ) ) ;
69
69
70
+ jest . mock ( '@deriv-com/analytics' , ( ) => ( {
71
+ Analytics : {
72
+ trackEvent : jest . fn ( ) ,
73
+ } ,
74
+ } ) ) ;
75
+
70
76
describe ( 'Passkeys' , ( ) => {
71
77
let mock_store : ReturnType < typeof mockStore > , modal_root_el : HTMLElement ;
72
78
const create_passkey = 'Create passkey' ;
@@ -162,7 +168,7 @@ describe('Passkeys', () => {
162
168
expect ( Analytics . trackEvent ) . not . toHaveBeenCalled ( ) ;
163
169
} ) ;
164
170
165
- it ( 'renders existed passkeys correctly and triggers new passkey creation' , ( ) => {
171
+ it ( 'renders existed passkeys correctly and triggers new passkey creation' , async ( ) => {
166
172
( useGetPasskeysList as jest . Mock ) . mockReturnValue ( {
167
173
passkeys_list : mock_passkeys_list ,
168
174
} ) ;
@@ -176,15 +182,15 @@ describe('Passkeys', () => {
176
182
expect ( screen . getByText ( passkey_name_2 ) ) . toBeInTheDocument ( ) ;
177
183
178
184
const create_passkey_button = screen . getByRole ( 'button' , { name : create_passkey } ) ;
179
- userEvent . click ( create_passkey_button ) ;
185
+ await userEvent . click ( create_passkey_button ) ;
180
186
expect ( mockStartPasskeyRegistration ) . toBeCalledTimes ( 1 ) ;
181
187
expect ( Analytics . trackEvent ) . toHaveBeenCalledWith (
182
188
tracking_event ,
183
189
getAnalyticsParams ( 'create_passkey_started' , { subform_name : 'passkey_main' } )
184
190
) ;
185
191
} ) ;
186
192
187
- it ( "renders 'Experience safer logins' page when no passkey created, trigger 'Learn more' screen, trigger passkey creation" , ( ) => {
193
+ it ( "renders 'Experience safer logins' page when no passkey created, trigger 'Learn more' screen, trigger passkey creation" , async ( ) => {
188
194
( useGetPasskeysList as jest . Mock ) . mockReturnValue ( {
189
195
passkeys_list : [ ] ,
190
196
} ) ;
@@ -196,13 +202,13 @@ describe('Passkeys', () => {
196
202
197
203
expect ( screen . getByText ( 'Experience safer logins' ) ) . toBeInTheDocument ( ) ;
198
204
const learn_more_button = screen . getByRole ( 'button' , { name : 'Learn more' } ) ;
199
- userEvent . click ( learn_more_button ) ;
205
+ await userEvent . click ( learn_more_button ) ;
200
206
expect ( Analytics . trackEvent ) . toHaveBeenCalledWith ( tracking_event , getAnalyticsParams ( 'info_open' ) ) ;
201
207
202
208
expect ( screen . getByText ( 'Effortless login with passkeys' ) ) . toBeInTheDocument ( ) ;
203
209
expect ( screen . getByText ( 'Tips:' ) ) . toBeInTheDocument ( ) ;
204
210
const create_passkey_button = screen . getByRole ( 'button' , { name : create_passkey } ) ;
205
- userEvent . click ( create_passkey_button ) ;
211
+ await userEvent . click ( create_passkey_button ) ;
206
212
expect ( mockStartPasskeyRegistration ) . toBeCalledTimes ( 1 ) ;
207
213
expect ( Analytics . trackEvent ) . toHaveBeenCalledWith (
208
214
tracking_event ,
@@ -223,13 +229,13 @@ describe('Passkeys', () => {
223
229
224
230
renderComponent ( ) ;
225
231
226
- userEvent . click ( screen . getByRole ( 'button' , { name : create_passkey } ) ) ;
232
+ await userEvent . click ( screen . getByRole ( 'button' , { name : create_passkey } ) ) ;
227
233
expect ( screen . getByText ( 'Just a reminder' ) ) . toBeInTheDocument ( ) ;
228
234
expect ( screen . getByText ( 'Enable screen lock on your device.' ) ) . toBeInTheDocument ( ) ;
229
235
expect ( screen . getByText ( 'Enable bluetooth.' ) ) . toBeInTheDocument ( ) ;
230
236
expect ( screen . getByText ( 'Sign in to your Google or iCloud account.' ) ) . toBeInTheDocument ( ) ;
231
237
232
- userEvent . click ( screen . getByRole ( 'button' , { name : continue_button } ) ) ;
238
+ await userEvent . click ( screen . getByRole ( 'button' , { name : continue_button } ) ) ;
233
239
expect ( mockCreatePasskey ) . toBeCalledTimes ( 1 ) ;
234
240
expect ( Analytics . trackEvent ) . toHaveBeenCalledWith (
235
241
tracking_event ,
@@ -252,16 +258,16 @@ describe('Passkeys', () => {
252
258
253
259
expect ( screen . queryByText ( 'Edit passkey' ) ) . not . toBeInTheDocument ( ) ;
254
260
255
- userEvent . click ( screen . getAllByTestId ( 'dt_dropdown_display' ) [ 0 ] ) ;
256
- userEvent . click ( screen . getByText ( 'Rename' ) ) ;
261
+ await userEvent . click ( screen . getAllByTestId ( 'dt_dropdown_display' ) [ 0 ] ) ;
262
+ await userEvent . click ( screen . getByText ( 'Rename' ) ) ;
257
263
258
264
expect ( Analytics . trackEvent ) . toHaveBeenCalledWith ( tracking_event , getAnalyticsParams ( 'passkey_rename_started' ) ) ;
259
265
expect ( screen . getByText ( 'Edit passkey' ) ) . toBeInTheDocument ( ) ;
260
266
261
267
const input : HTMLInputElement = screen . getByRole ( 'textbox' ) ;
262
- userEvent . clear ( input ) ;
263
- userEvent . type ( input , 'new passkey name' ) ;
264
- userEvent . click ( screen . getByRole ( 'button' , { name : / s a v e c h a n g e s / i } ) ) ;
268
+ await userEvent . clear ( input ) ;
269
+ await userEvent . type ( input , 'new passkey name' ) ;
270
+ await userEvent . click ( screen . getByRole ( 'button' , { name : / s a v e c h a n g e s / i } ) ) ;
265
271
266
272
await waitFor ( ( ) => {
267
273
expect ( mockRenamePasskey ) . toHaveBeenCalledTimes ( 1 ) ;
@@ -283,13 +289,13 @@ describe('Passkeys', () => {
283
289
284
290
expect ( screen . queryByText ( 'Edit passkey' ) ) . not . toBeInTheDocument ( ) ;
285
291
286
- userEvent . click ( screen . getAllByTestId ( 'dt_dropdown_display' ) [ 0 ] ) ;
287
- userEvent . click ( screen . getByText ( 'Remove' ) ) ;
292
+ await userEvent . click ( screen . getAllByTestId ( 'dt_dropdown_display' ) [ 0 ] ) ;
293
+ await userEvent . click ( screen . getByText ( 'Remove' ) ) ;
288
294
289
295
expect ( Analytics . trackEvent ) . toHaveBeenCalledWith ( tracking_event , getAnalyticsParams ( 'passkey_remove_started' ) ) ;
290
296
expect ( screen . getByText ( 'Are you sure you want to remove this passkey?' ) ) . toBeInTheDocument ( ) ;
291
297
292
- userEvent . click ( screen . getByRole ( 'button' , { name : / r e m o v e / i } ) ) ;
298
+ await userEvent . click ( screen . getByRole ( 'button' , { name : / r e m o v e / i } ) ) ;
293
299
expect ( mockRemovePasskey ) . toHaveBeenCalledTimes ( 1 ) ;
294
300
} ) ;
295
301
@@ -302,15 +308,15 @@ describe('Passkeys', () => {
302
308
303
309
renderComponent ( ) ;
304
310
305
- userEvent . click ( screen . getByRole ( 'button' , { name : create_passkey } ) ) ;
306
- userEvent . click ( screen . getByRole ( 'button' , { name : continue_button } ) ) ;
311
+ await userEvent . click ( screen . getByRole ( 'button' , { name : create_passkey } ) ) ;
312
+ await userEvent . click ( screen . getByRole ( 'button' , { name : continue_button } ) ) ;
307
313
308
314
await waitFor ( ( ) => {
309
315
expect ( screen . getByText ( error_message ) ) . toBeInTheDocument ( ) ;
310
316
expect ( screen . getByText ( error_title ) ) . toBeInTheDocument ( ) ;
311
317
} ) ;
312
318
313
- userEvent . click ( screen . getByRole ( 'button' , { name : ok_button } ) ) ;
319
+ await userEvent . click ( screen . getByRole ( 'button' , { name : ok_button } ) ) ;
314
320
315
321
await waitFor ( ( ) => {
316
322
expect ( mockHistoryPush ) . toHaveBeenCalledWith ( routes . traders_hub ) ;
@@ -331,15 +337,15 @@ describe('Passkeys', () => {
331
337
332
338
renderComponent ( ) ;
333
339
334
- userEvent . click ( screen . getByRole ( 'button' , { name : create_passkey } ) ) ;
335
- userEvent . click ( screen . getByRole ( 'button' , { name : continue_button } ) ) ;
340
+ await userEvent . click ( screen . getByRole ( 'button' , { name : create_passkey } ) ) ;
341
+ await userEvent . click ( screen . getByRole ( 'button' , { name : continue_button } ) ) ;
336
342
337
343
await waitFor ( ( ) => {
338
344
expect ( screen . getByText ( error_message ) ) . toBeInTheDocument ( ) ;
339
345
expect ( screen . getByText ( error_title ) ) . toBeInTheDocument ( ) ;
340
346
} ) ;
341
347
342
- userEvent . click ( screen . getByRole ( 'button' , { name : ok_button } ) ) ;
348
+ await userEvent . click ( screen . getByRole ( 'button' , { name : ok_button } ) ) ;
343
349
expect ( mockHistoryPush ) . toHaveBeenCalledWith ( routes . traders_hub ) ;
344
350
} ) ;
345
351
} ) ;
0 commit comments