Skip to content

Commit 9ca7e8d

Browse files
test(frontend): update label matchers for required field indicators
Remove trailing anchor from password label regexes to accommodate the new required indicator text (asterisk + sr-only "obligatoire") added to Input/PasswordInput components.
1 parent df31681 commit 9ca7e8d

File tree

5 files changed

+51
-51
lines changed

5 files changed

+51
-51
lines changed

src/frontend/src/components/auth/ChangePasswordModal.test.tsx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ describe('ChangePasswordModal', () => {
5757
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
5858

5959
expect(screen.getByLabelText(/mot de passe actuel/i)).toBeInTheDocument();
60-
expect(screen.getByLabelText(/^nouveau mot de passe$/i)).toBeInTheDocument();
60+
expect(screen.getByLabelText(/^nouveau mot de passe/i)).toBeInTheDocument();
6161
expect(screen.getByLabelText(/confirmer le nouveau mot de passe/i)).toBeInTheDocument();
6262
});
6363

@@ -106,7 +106,7 @@ describe('ChangePasswordModal', () => {
106106
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
107107

108108
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
109-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
109+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
110110
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
111111

112112
await waitFor(() => {
@@ -118,7 +118,7 @@ describe('ChangePasswordModal', () => {
118118
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
119119

120120
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
121-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
121+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
122122
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), 'DifferentPass@789');
123123
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
124124

@@ -131,7 +131,7 @@ describe('ChangePasswordModal', () => {
131131
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
132132

133133
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
134-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), 'weak');
134+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), 'weak');
135135
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), 'weak');
136136
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
137137

@@ -144,7 +144,7 @@ describe('ChangePasswordModal', () => {
144144
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
145145

146146
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.newPassword);
147-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
147+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
148148
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), validFormData.newPassword);
149149
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
150150

@@ -177,7 +177,7 @@ describe('ChangePasswordModal', () => {
177177
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
178178

179179
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
180-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
180+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
181181
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), validFormData.confirmNewPassword);
182182
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
183183

@@ -192,7 +192,7 @@ describe('ChangePasswordModal', () => {
192192
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
193193

194194
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
195-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
195+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
196196
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), validFormData.confirmNewPassword);
197197
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
198198

@@ -210,7 +210,7 @@ describe('ChangePasswordModal', () => {
210210
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
211211

212212
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
213-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
213+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
214214
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), validFormData.confirmNewPassword);
215215

216216
const button = screen.getByRole('button', { name: /changer mon mot de passe/i });
@@ -232,7 +232,7 @@ describe('ChangePasswordModal', () => {
232232
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
233233

234234
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
235-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
235+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
236236
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), validFormData.confirmNewPassword);
237237
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
238238

@@ -249,7 +249,7 @@ describe('ChangePasswordModal', () => {
249249
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
250250

251251
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
252-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
252+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
253253
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), validFormData.confirmNewPassword);
254254
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
255255

@@ -267,7 +267,7 @@ describe('ChangePasswordModal', () => {
267267
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
268268

269269
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
270-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
270+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
271271
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), validFormData.confirmNewPassword);
272272
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
273273

@@ -291,7 +291,7 @@ describe('ChangePasswordModal', () => {
291291
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
292292

293293
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
294-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
294+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
295295
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), validFormData.confirmNewPassword);
296296
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
297297

@@ -307,7 +307,7 @@ describe('ChangePasswordModal', () => {
307307
it('should display password strength indicator when typing new password', async () => {
308308
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
309309

310-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), 'Test');
310+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), 'Test');
311311

312312
await waitFor(() => {
313313
expect(screen.getByText(/12 caractères min/i)).toBeInTheDocument();
@@ -317,7 +317,7 @@ describe('ChangePasswordModal', () => {
317317
it('should update strength indicator as password changes', async () => {
318318
render(<ChangePasswordModal isOpen={true} token={mockToken} onSuccess={mockOnSuccess} />);
319319

320-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), 'MySecure@Pass123');
320+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), 'MySecure@Pass123');
321321

322322
await waitFor(() => {
323323
expect(screen.getByRole('progressbar')).toBeInTheDocument();
@@ -361,7 +361,7 @@ describe('ChangePasswordModal', () => {
361361
);
362362

363363
await userEvent.type(screen.getByLabelText(/mot de passe actuel/i), validFormData.currentPassword);
364-
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe$/i), validFormData.newPassword);
364+
await userEvent.type(screen.getByLabelText(/^nouveau mot de passe/i), validFormData.newPassword);
365365
await userEvent.type(screen.getByLabelText(/confirmer le nouveau mot de passe/i), validFormData.confirmNewPassword);
366366
await userEvent.click(screen.getByRole('button', { name: /changer mon mot de passe/i }));
367367

src/frontend/src/components/auth/LoginForm.test.tsx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ describe('LoginForm', () => {
5555
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
5656

5757
expect(screen.getByLabelText(/adresse email/i)).toBeInTheDocument();
58-
expect(screen.getByLabelText(/^mot de passe$/i)).toBeInTheDocument();
58+
expect(screen.getByLabelText(/^mot de passe/i)).toBeInTheDocument();
5959
});
6060

6161
it('should render submit button', () => {
@@ -112,7 +112,7 @@ describe('LoginForm', () => {
112112
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
113113
expect(screen.getByText(/le mot de passe est requis/i)).toBeInTheDocument();
114114

115-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), 'a');
115+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), 'a');
116116

117117
expect(screen.queryByText(/le mot de passe est requis/i)).not.toBeInTheDocument();
118118
});
@@ -144,7 +144,7 @@ describe('LoginForm', () => {
144144
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
145145

146146
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
147-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
147+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
148148
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
149149

150150
await waitFor(() => {
@@ -161,7 +161,7 @@ describe('LoginForm', () => {
161161
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
162162

163163
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
164-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
164+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
165165
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
166166

167167
await waitFor(() => {
@@ -175,7 +175,7 @@ describe('LoginForm', () => {
175175
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
176176

177177
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
178-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
178+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
179179
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
180180

181181
await waitFor(() => {
@@ -189,7 +189,7 @@ describe('LoginForm', () => {
189189
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
190190

191191
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
192-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
192+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
193193

194194
fireEvent.click(screen.getByRole('button', { name: /se connecter/i }));
195195

@@ -209,7 +209,7 @@ describe('LoginForm', () => {
209209
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
210210

211211
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
212-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
212+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
213213
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
214214

215215
await waitFor(() => {
@@ -226,7 +226,7 @@ describe('LoginForm', () => {
226226
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
227227

228228
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
229-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
229+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
230230
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
231231

232232
await waitFor(() => {
@@ -242,7 +242,7 @@ describe('LoginForm', () => {
242242
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
243243

244244
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
245-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
245+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
246246
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
247247

248248
await waitFor(() => {
@@ -259,7 +259,7 @@ describe('LoginForm', () => {
259259
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
260260

261261
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
262-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
262+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
263263
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
264264

265265
await waitFor(() => {
@@ -280,7 +280,7 @@ describe('LoginForm', () => {
280280
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
281281

282282
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
283-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
283+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
284284
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
285285

286286
await waitFor(() => {
@@ -304,7 +304,7 @@ describe('LoginForm', () => {
304304
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
305305

306306
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
307-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
307+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
308308
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
309309

310310
await waitFor(() => {
@@ -321,7 +321,7 @@ describe('LoginForm', () => {
321321
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
322322

323323
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
324-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
324+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
325325
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
326326

327327
await waitFor(() => {
@@ -340,7 +340,7 @@ describe('LoginForm', () => {
340340
renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
341341

342342
await userEvent.type(screen.getByLabelText(/adresse email/i), validFormData.email);
343-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), validFormData.password);
343+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), validFormData.password);
344344
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
345345

346346
await waitFor(() => {
@@ -377,7 +377,7 @@ describe('LoginForm', () => {
377377
const { container } = renderWithRouter(<LoginForm onSuccess={mockOnSuccess} />);
378378

379379
await userEvent.type(screen.getByLabelText(/adresse email/i), 'test@example.com');
380-
await userEvent.type(screen.getByLabelText(/^mot de passe$/i), 'SomePassword1!');
380+
await userEvent.type(screen.getByLabelText(/^mot de passe/i), 'SomePassword1!');
381381
await userEvent.click(screen.getByRole('button', { name: /se connecter/i }));
382382

383383
await waitFor(() => {

0 commit comments

Comments
 (0)