@@ -2,7 +2,6 @@ import type * as SharedReact from '@clerk/shared/react';
22import { ClerkInstanceContext } from '@clerk/shared/react' ;
33import type { LoadedClerk } from '@clerk/shared/types' ;
44import { render , screen } from '@testing-library/react' ;
5- import userEvent from '@testing-library/user-event' ;
65import { expect , it , vi } from 'vitest' ;
76
87import { MosaicProvider } from '../../../MosaicProvider' ;
@@ -50,24 +49,19 @@ function tree() {
5049 return (
5150 < ClerkInstanceContext . Provider value = { { value : clerk as unknown as LoadedClerk } } >
5251 < MosaicProvider >
53- < UserProfilePasswordSection />
52+ < UserProfilePasswordSection fallback = { < div > Loading password section </ div > } />
5453 </ MosaicProvider >
5554 </ ClerkInstanceContext . Provider >
5655 ) ;
5756}
5857
59- it ( 'keeps the draft while session data briefly reloads' , async ( ) => {
58+ it ( 'shows the fallback when session data starts loading after the section is ready' , ( ) => {
6059 isSessionLoaded = true ;
6160 const { rerender } = render ( tree ( ) ) ;
62- const events = userEvent . setup ( ) ;
63- await events . click ( screen . getByRole ( 'button' , { name : 'Change password' } ) ) ;
64- await events . type ( screen . getByLabelText ( 'New password' ) , 'new-password-123' ) ;
61+ expect ( screen . getByRole ( 'button' , { name : 'Change password' } ) ) . toBeInTheDocument ( ) ;
6562
6663 isSessionLoaded = false ;
6764 rerender ( tree ( ) ) ;
68- expect ( screen . getByLabelText ( 'New password' ) ) . toHaveValue ( 'new-password-123' ) ;
69-
70- isSessionLoaded = true ;
71- rerender ( tree ( ) ) ;
72- expect ( screen . getByLabelText ( 'New password' ) ) . toHaveValue ( 'new-password-123' ) ;
65+ expect ( screen . getByText ( 'Loading password section' ) ) . toBeInTheDocument ( ) ;
66+ expect ( screen . queryByRole ( 'button' , { name : 'Change password' } ) ) . not . toBeInTheDocument ( ) ;
7367} ) ;
0 commit comments