@@ -235,4 +235,56 @@ describe('AddNewTeamMemberTrigger', () => {
235235 expect ( newUsersInput ) . toHaveValue ( '' ) ;
236236 expect ( newRoleSelect ) . toHaveValue ( '' ) ;
237237 } ) ;
238+
239+ it ( 'allows closing the success/error toast message' , async ( ) => {
240+ const user = userEvent . setup ( ) ;
241+ renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
242+
243+ const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
244+ await user . click ( triggerButton ) ;
245+
246+ const saveButton = screen . getByTestId ( 'save-modal' ) ;
247+ await user . click ( saveButton ) ;
248+
249+ // Simulate successful response
250+ const [ , { onSuccess } ] = mockMutate . mock . calls [ 0 ] ;
251+ onSuccess ( {
252+ completed :
[ { user :
'[email protected] ' , status :
'role_added' } ] , 253+ errors : [ ] ,
254+ } ) ;
255+
256+ // Toast should be visible
257+ await waitFor ( ( ) => {
258+ expect ( screen . getByText ( '1 team member added successfully.' ) ) . toBeInTheDocument ( ) ;
259+ } ) ;
260+
261+ // Find and close the toast
262+ const toastCloseButton = screen . getByLabelText ( / c l o s e / i) ;
263+ await user . click ( toastCloseButton ) ;
264+
265+ // Toast should be removed
266+ await waitFor ( ( ) => {
267+ expect ( screen . queryByText ( '1 team member added successfully.' ) ) . not . toBeInTheDocument ( ) ;
268+ } ) ;
269+ } ) ;
270+
271+ it ( 'displays loading state when adding team member' , async ( ) => {
272+ const user = userEvent . setup ( ) ;
273+
274+ // Mock loading state
275+ ( useAddTeamMember as jest . Mock ) . mockReturnValue ( {
276+ mutate : mockMutate ,
277+ isPending : true ,
278+ isError : false ,
279+ isSuccess : false ,
280+ } as any ) ;
281+
282+ renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
283+
284+ const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
285+ await user . click ( triggerButton ) ;
286+
287+ // Loading indicator should be visible in the modal
288+ expect ( screen . getByTestId ( 'loading-indicator' ) ) . toBeInTheDocument ( ) ;
289+ } ) ;
238290} ) ;
0 commit comments