@@ -21,26 +21,27 @@ jest.mock('./AddNewTeamMemberModal', () => {
2121 isOpen, close, onSave, isLoading, formValues, handleChangeForm,
2222 } ) => (
2323 isOpen ? (
24- < div data-testid = "add-team-member-modal ">
25- < button type = "button" onClick = { close } data-testid = "close- modal"> Close</ button >
26- < button type = "button" onClick = { onSave } data-testid = "save-modal "> Save</ button >
24+ < div role = "dialog" aria-label = "Add New Team Member ">
25+ < button type = "button" onClick = { close } aria-label = "Close modal"> Close</ button >
26+ < button type = "button" onClick = { onSave } aria-label = "Save team member "> Save</ button >
2727 < textarea
2828 name = "users"
2929 value = { formValues ?. users || '' }
3030 onChange = { handleChangeForm }
31- data-testid = "users-input"
31+ aria-label = "Enter user emails or usernames"
32+ placeholder = "Enter emails or usernames"
3233 />
3334 < select
3435 name = "role"
3536 value = { formValues ?. role || '' }
3637 onChange = { handleChangeForm }
37- data-testid = " role-select "
38+ aria-label = "Select role"
3839 >
3940 < option value = "" > Select role</ option >
4041 < option value = "admin" > Admin</ option >
4142 < option value = "editor" > Editor</ option >
4243 </ select >
43- { isLoading && < div data-testid = "loading-indicator "> Loading...</ div > }
44+ { isLoading && < div role = "status" aria-label = "Adding team member loader "> Loading...</ div > }
4445 </ div >
4546 ) : null
4647 ) ;
@@ -75,7 +76,7 @@ describe('AddNewTeamMemberTrigger', () => {
7576 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
7677 await user . click ( triggerButton ) ;
7778
78- expect ( screen . getByTestId ( 'add-team-member-modal' ) ) . toBeInTheDocument ( ) ;
79+ expect ( screen . getByRole ( 'dialog' , { name : 'Add New Team Member' } ) ) . toBeInTheDocument ( ) ;
7980 } ) ;
8081
8182 it ( 'closes modal when close button is clicked' , async ( ) => {
@@ -85,12 +86,12 @@ describe('AddNewTeamMemberTrigger', () => {
8586 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
8687 await user . click ( triggerButton ) ;
8788
88- expect ( screen . getByTestId ( 'add-team-member-modal' ) ) . toBeInTheDocument ( ) ;
89+ expect ( screen . getByRole ( 'dialog' , { name : 'Add New Team Member' } ) ) . toBeInTheDocument ( ) ;
8990
90- const closeButton = screen . getByTestId ( 'close- modal') ;
91+ const closeButton = screen . getByRole ( 'button' , { name : 'Close modal' } ) ;
9192 await user . click ( closeButton ) ;
9293
93- expect ( screen . queryByTestId ( 'add-team-member-modal' ) ) . not . toBeInTheDocument ( ) ;
94+ expect ( screen . queryByRole ( 'dialog' , { name : 'Add New Team Member' } ) ) . not . toBeInTheDocument ( ) ;
9495 } ) ;
9596
9697 it ( 'calls addTeamMember with correct data when save is clicked' , async ( ) => {
@@ -100,9 +101,9 @@ describe('AddNewTeamMemberTrigger', () => {
100101 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
101102 await user . click ( triggerButton ) ;
102103
103- const usersInput = screen . getByTestId ( 'users-input' ) ;
104- const roleSelect = screen . getByTestId ( ' role-select' ) ;
105- const saveButton = screen . getByTestId ( 'save-modal' ) ;
104+ const usersInput = screen . getByRole ( 'textbox' , { name : 'Enter user emails or usernames' } ) ;
105+ const roleSelect = screen . getByRole ( 'combobox' , { name : 'Select role' } ) ;
106+ const saveButton = screen . getByRole ( 'button' , { name : 'Save team member' } ) ;
106107
107108 await user . type ( usersInput , '[email protected] , [email protected] ' ) ; 108109 await user . selectOptions ( roleSelect , 'editor' ) ;
@@ -129,7 +130,7 @@ describe('AddNewTeamMemberTrigger', () => {
129130 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
130131 await user . click ( triggerButton ) ;
131132
132- const saveButton = screen . getByTestId ( 'save-modal' ) ;
133+ const saveButton = screen . getByRole ( 'button' , { name : 'Save team member' } ) ;
133134 await user . click ( saveButton ) ;
134135
135136 // Simulate successful response with no errors
@@ -143,7 +144,7 @@ describe('AddNewTeamMemberTrigger', () => {
143144 } ) ;
144145
145146 await waitFor ( ( ) => {
146- expect ( screen . queryByTestId ( 'add-team-member-modal' ) ) . not . toBeInTheDocument ( ) ;
147+ expect ( screen . queryByRole ( 'dialog' , { name : 'Add New Team Member' } ) ) . not . toBeInTheDocument ( ) ;
147148 } ) ;
148149
149150 expect ( screen . getByText ( '2 team members added successfully.' ) ) . toBeInTheDocument ( ) ;
@@ -156,7 +157,7 @@ describe('AddNewTeamMemberTrigger', () => {
156157 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
157158 await user . click ( triggerButton ) ;
158159
159- const saveButton = screen . getByTestId ( 'save-modal' ) ;
160+ const saveButton = screen . getByRole ( 'button' , { name : 'Save team member' } ) ;
160161 await user . click ( saveButton ) ;
161162
162163 // Simulate partial success response
@@ -176,7 +177,7 @@ describe('AddNewTeamMemberTrigger', () => {
176177 } ) ;
177178
178179 // Modal should remain open when there are errors
179- expect ( screen . getByTestId ( 'add-team-member-modal' ) ) . toBeInTheDocument ( ) ;
180+ expect ( screen . getByRole ( 'dialog' , { name : 'Add New Team Member' } ) ) . toBeInTheDocument ( ) ;
180181 } ) ;
181182
182183 it ( 'displays only error toast when all additions fail' , async ( ) => {
@@ -186,7 +187,7 @@ describe('AddNewTeamMemberTrigger', () => {
186187 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
187188 await user . click ( triggerButton ) ;
188189
189- const saveButton = screen . getByTestId ( 'save-modal' ) ;
190+ const saveButton = screen . getByRole ( 'button' , { name : 'Save team member' } ) ;
190191 await user . click ( saveButton ) ;
191192
192193 // Simulate all failed response
@@ -204,7 +205,7 @@ describe('AddNewTeamMemberTrigger', () => {
204205 } ) ;
205206
206207 // Modal should remain open when there are errors
207- expect ( screen . getByTestId ( 'add-team-member-modal' ) ) . toBeInTheDocument ( ) ;
208+ expect ( screen . getByRole ( 'dialog' , { name : 'Add New Team Member' } ) ) . toBeInTheDocument ( ) ;
208209 } ) ;
209210
210211 it ( 'resets form values after successful addition with no errors' , async ( ) => {
@@ -214,9 +215,9 @@ describe('AddNewTeamMemberTrigger', () => {
214215 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
215216 await user . click ( triggerButton ) ;
216217
217- const usersInput = screen . getByTestId ( 'users-input' ) ;
218- const roleSelect = screen . getByTestId ( ' role-select' ) ;
219- const saveButton = screen . getByTestId ( 'save-modal' ) ;
218+ const usersInput = screen . getByRole ( 'textbox' , { name : 'Enter user emails or usernames' } ) ;
219+ const roleSelect = screen . getByRole ( 'combobox' , { name : 'Select role' } ) ;
220+ const saveButton = screen . getByRole ( 'button' , { name : 'Save team member' } ) ;
220221
221222 await user . type ( usersInput , '[email protected] ' ) ; 222223 await user . selectOptions ( roleSelect , 'editor' ) ;
@@ -232,8 +233,8 @@ describe('AddNewTeamMemberTrigger', () => {
232233 // Open modal again to check if form is reset
233234 await user . click ( triggerButton ) ;
234235
235- const newUsersInput = screen . getByTestId ( 'users-input' ) ;
236- const newRoleSelect = screen . getByTestId ( ' role-select' ) ;
236+ const newUsersInput = screen . getByRole ( 'textbox' , { name : 'Enter user emails or usernames' } ) ;
237+ const newRoleSelect = screen . getByRole ( 'combobox' , { name : 'Select role' } ) ;
237238
238239 expect ( newUsersInput ) . toHaveValue ( '' ) ;
239240 expect ( newRoleSelect ) . toHaveValue ( '' ) ;
@@ -246,7 +247,7 @@ describe('AddNewTeamMemberTrigger', () => {
246247 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
247248 await user . click ( triggerButton ) ;
248249
249- const saveButton = screen . getByTestId ( 'save-modal' ) ;
250+ const saveButton = screen . getByRole ( 'button' , { name : 'Save team member' } ) ;
250251 await user . click ( saveButton ) ;
251252
252253 // Simulate successful response
@@ -289,7 +290,7 @@ describe('AddNewTeamMemberTrigger', () => {
289290 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
290291 await user . click ( triggerButton ) ;
291292
292- const saveButton = screen . getByTestId ( 'save-modal' ) ;
293+ const saveButton = screen . getByRole ( 'button' , { name : 'Save team member' } ) ;
293294 await user . click ( saveButton ) ;
294295
295296 await waitFor ( ( ) => {
@@ -351,16 +352,16 @@ describe('AddNewTeamMemberTrigger', () => {
351352 const triggerButton = screen . getByRole ( 'button' , { name : / a d d n e w t e a m m e m b e r / i } ) ;
352353 await user . click ( triggerButton ) ;
353354
354- const userInput = screen . getByTestId ( 'users-input' ) ;
355- const roleSelect = screen . getByTestId ( ' role-select' ) ;
355+ const userInput = screen . getByRole ( 'textbox' , { name : 'Enter user emails or usernames' } ) ;
356+ const roleSelect = screen . getByRole ( 'combobox' , { name : 'Select role' } ) ;
356357 await user . type ( userInput , '[email protected] ' ) ; 357358 await user . selectOptions ( roleSelect , 'editor' ) ;
358359
359- const saveButton = screen . getByTestId ( 'save-modal' ) ;
360+ const saveButton = screen . getByRole ( 'button' , { name : 'Save team member' } ) ;
360361 await user . click ( saveButton ) ;
361362
362363 // should now reflect isPending = true
363- const loadingIndicator = await screen . findByTestId ( 'loading-indicator' ) ;
364+ const loadingIndicator = await screen . findByRole ( 'status' , { name : 'Adding team member loader' } ) ;
364365 expect ( loadingIndicator ) . toBeInTheDocument ( ) ;
365366 expect ( loadingIndicator ) . toHaveTextContent ( 'Loading...' ) ;
366367
0 commit comments