@@ -3,6 +3,7 @@ import { screen, waitFor } from '@testing-library/react';
33import userEvent from '@testing-library/user-event' ;
44import { renderWrapper } from '@src/setupTest' ;
55import { useAssignTeamMembersRole } from '@src/authz-module/data/hooks' ;
6+ import { ToastManagerProvider } from '@src/authz-module/libraries-manager/ToastManagerContext' ;
67import AddNewTeamMemberTrigger from './AddNewTeamMemberTrigger' ;
78
89const mockMutate = jest . fn ( ) ;
@@ -59,15 +60,15 @@ describe('AddNewTeamMemberTrigger', () => {
5960 } ) ;
6061
6162 it ( 'renders the trigger button' , ( ) => {
62- renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
63+ renderWrapper ( < ToastManagerProvider > < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> </ ToastManagerProvider > ) ;
6364
6465 const button = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
6566 expect ( button ) . toBeInTheDocument ( ) ;
6667 } ) ;
6768
6869 it ( 'opens modal when trigger button is clicked' , async ( ) => {
6970 const user = userEvent . setup ( ) ;
70- renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
71+ renderWrapper ( < ToastManagerProvider > < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> </ ToastManagerProvider > ) ;
7172
7273 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
7374 await user . click ( triggerButton ) ;
@@ -77,7 +78,7 @@ describe('AddNewTeamMemberTrigger', () => {
7778
7879 it ( 'closes modal when close button is clicked' , async ( ) => {
7980 const user = userEvent . setup ( ) ;
80- renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
81+ renderWrapper ( < ToastManagerProvider > < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> </ ToastManagerProvider > ) ;
8182
8283 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
8384 await user . click ( triggerButton ) ;
@@ -92,7 +93,7 @@ describe('AddNewTeamMemberTrigger', () => {
9293
9394 it ( 'calls addTeamMember with correct data when save is clicked' , async ( ) => {
9495 const user = userEvent . setup ( ) ;
95- renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
96+ renderWrapper ( < ToastManagerProvider > < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> </ ToastManagerProvider > ) ;
9697
9798 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
9899 await user . click ( triggerButton ) ;
@@ -121,7 +122,7 @@ describe('AddNewTeamMemberTrigger', () => {
121122
122123 it ( 'displays success toast and closes modal on successful addition with no errors' , async ( ) => {
123124 const user = userEvent . setup ( ) ;
124- renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
125+ renderWrapper ( < ToastManagerProvider > < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> </ ToastManagerProvider > ) ;
125126
126127 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
127128 await user . click ( triggerButton ) ;
@@ -148,7 +149,7 @@ describe('AddNewTeamMemberTrigger', () => {
148149
149150 it ( 'displays mixed success and error toast on partial success' , async ( ) => {
150151 const user = userEvent . setup ( ) ;
151- renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
152+ renderWrapper ( < ToastManagerProvider > < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> </ ToastManagerProvider > ) ;
152153
153154 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
154155 await user . click ( triggerButton ) ;
@@ -178,7 +179,7 @@ describe('AddNewTeamMemberTrigger', () => {
178179
179180 it ( 'displays only error toast when all additions fail' , async ( ) => {
180181 const user = userEvent . setup ( ) ;
181- renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
182+ renderWrapper ( < ToastManagerProvider > < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> </ ToastManagerProvider > ) ;
182183
183184 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
184185 await user . click ( triggerButton ) ;
@@ -206,7 +207,7 @@ describe('AddNewTeamMemberTrigger', () => {
206207
207208 it ( 'resets form values after successful addition with no errors' , async ( ) => {
208209 const user = userEvent . setup ( ) ;
209- renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
210+ renderWrapper ( < ToastManagerProvider > < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> </ ToastManagerProvider > ) ;
210211
211212 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
212213 await user . click ( triggerButton ) ;
@@ -238,7 +239,7 @@ describe('AddNewTeamMemberTrigger', () => {
238239
239240 it ( 'allows closing the success/error toast message' , async ( ) => {
240241 const user = userEvent . setup ( ) ;
241- renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
242+ renderWrapper ( < ToastManagerProvider > < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> </ ToastManagerProvider > ) ;
242243
243244 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
244245 await user . click ( triggerButton ) ;
@@ -270,21 +271,25 @@ describe('AddNewTeamMemberTrigger', () => {
270271
271272 it ( 'displays loading state when adding team member' , async ( ) => {
272273 const user = userEvent . setup ( ) ;
273-
274- // Mock loading state
275274 ( useAssignTeamMembersRole as jest . Mock ) . mockReturnValue ( {
276275 mutate : mockMutate ,
277276 isPending : true ,
278277 isError : false ,
279278 isSuccess : false ,
280279 } as any ) ;
281280
282- renderWrapper ( < AddNewTeamMemberTrigger libraryId = { mockLibraryId } /> ) ;
281+ renderWrapper (
282+ < ToastManagerProvider >
283+ < AddNewTeamMemberTrigger libraryId = { mockLibraryId } />
284+ </ ToastManagerProvider >
285+ ) ;
283286
284287 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
285288 await user . click ( triggerButton ) ;
289+ const modal = screen . getByTestId ( 'add-team-member-modal' ) ;
290+ expect ( modal ) . toBeInTheDocument ( ) ;
291+
292+ // Wait for modal to render with loading state
286293
287- // Loading indicator should be visible in the modal
288- expect ( screen . getByTestId ( 'loading-indicator' ) ) . toBeInTheDocument ( ) ;
289294 } ) ;
290295} ) ;
0 commit comments