@@ -14,12 +14,13 @@ export default function Input({ children, id, isRequired = true, autoComplete =
required={isRequired}
autoComplete={autoComplete}
pattern={pattern}
+ maxlength={maxlength}
onChange={onChange}
list={list}
min={min}
disabled={disabled}
name={id}
- value={value?.trim()}
+ value={value}
aria-busy={ariaBusy}
data-testid={testId}
/>
@@ -48,4 +49,5 @@ Input.propTypes = {
ariaBusy: PropTypes.bool,
value: PropTypes.string,
testId: PropTypes.string,
+ maxlength: PropTypes.string
};
diff --git a/src/components/commun/ZoneDeTexte.jsx b/src/components/commun/ZoneDeTexte.jsx
index 037e4a67..55ed95e5 100644
--- a/src/components/commun/ZoneDeTexte.jsx
+++ b/src/components/commun/ZoneDeTexte.jsx
@@ -1,13 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
-export default function ZoneDeTexte({ children, id, isRequired = true }) {
+export default function ZoneDeTexte({ children, id, isRequired = true, maxlength = "2500" }) {
return (
-
+
);
}
@@ -16,4 +16,5 @@ ZoneDeTexte.propTypes = {
children: PropTypes.node,
id: PropTypes.string,
isRequired: PropTypes.bool,
+ maxlength: PropTypes.string,
};
diff --git a/src/views/candidature-conseiller/CandidatureConseiller.test.jsx b/src/views/candidature-conseiller/CandidatureConseiller.test.jsx
index a4bbeae5..3166da8b 100644
--- a/src/views/candidature-conseiller/CandidatureConseiller.test.jsx
+++ b/src/views/candidature-conseiller/CandidatureConseiller.test.jsx
@@ -60,9 +60,9 @@ describe('candidature conseiller', () => {
expect(email).toHaveAttribute('type', 'email');
expect(email).toBeRequired();
- const telephone = within(etapeInformationsDeContact).getByLabelText('Téléphone Format attendu : +33122334455');
+ const telephone = within(etapeInformationsDeContact).getByLabelText('Téléphone Format attendu : 0122334455 ou +33122334455');
expect(telephone).toHaveAttribute('type', 'tel');
- expect(telephone).toHaveAttribute('pattern', '[+](33|590|596|594|262|269|687)[0-9]{9}');
+ expect(telephone).toHaveAttribute('pattern', '([+][0-9]{11,12})|([0-9]{10})');
const habitation = within(etapeInformationsDeContact).getByLabelText(('Votre lieu d’habitation * Saississez le nom ou le code postal de votre commune.'));
expect(habitation).toHaveAttribute('type', 'text');
@@ -225,8 +225,9 @@ describe('candidature conseiller', () => {
);
expect(aideMotivation).toBeInTheDocument();
- const descriptionMotivation = within(votreMotivation).getByLabelText('Votre message *');
+ const descriptionMotivation = within(votreMotivation).getByLabelText('Votre message * Limité à 2500 caractères');
expect(descriptionMotivation).toHaveAttribute('name', 'motivation');
+ expect(descriptionMotivation).toHaveAttribute('maxlength', '2500');
expect(descriptionMotivation).toBeRequired();
});
@@ -381,7 +382,7 @@ describe('candidature conseiller', () => {
fireEvent.change(date, { target: { value: dateDujour() } });
const _5km = screen.getByRole('radio', { name: '5 km' });
fireEvent.click(_5km);
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
// WHEN
@@ -418,7 +419,7 @@ describe('candidature conseiller', () => {
fireEvent.change(date, { target: { value: dateDujour() } });
const _5km = screen.getByRole('radio', { name: '5 km' });
fireEvent.click(_5km);
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
// WHEN
@@ -462,7 +463,7 @@ describe('candidature conseiller', () => {
fireEvent.change(date, { target: { value: dateDujour() } });
const _5km = screen.getByRole('radio', { name: '5 km' });
fireEvent.click(_5km);
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
// WHEN
@@ -511,7 +512,7 @@ describe('candidature conseiller', () => {
fireEvent.change(date, { target: { value: dateDujour() } });
const _5km = screen.getByRole('radio', { name: '5 km' });
fireEvent.click(_5km);
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
// WHEN
@@ -549,7 +550,7 @@ describe('candidature conseiller', () => {
fireEvent.change(email, { target: { value: 'jean.dupont@example.com' } });
const adresse = screen.getByLabelText('Votre lieu d’habitation * Saississez le nom ou le code postal de votre commune.');
fireEvent.change(adresse, { target: { value: '93100 Montreuil' } });
- const telephone = screen.getByLabelText('Téléphone Format attendu : +33122334455');
+ const telephone = screen.getByLabelText('Téléphone Format attendu : 0122334455 ou +33122334455');
fireEvent.change(telephone, { target: { value: '+33159590730' } });
const enEmploi = screen.getByRole('checkbox', { name: 'En emploi' });
fireEvent.click(enEmploi);
@@ -559,7 +560,7 @@ describe('candidature conseiller', () => {
fireEvent.change(date, { target: { value: dateDujour() } });
const _5km = screen.getByRole('radio', { name: '5 km' });
fireEvent.click(_5km);
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
// WHEN
@@ -691,7 +692,7 @@ describe('candidature conseiller', () => {
fireEvent.change(email, { target: { value: 'jean.dupont@example.com' } });
const adresse = screen.getByLabelText('Votre lieu d’habitation * Saississez le nom ou le code postal de votre commune.');
fireEvent.change(adresse, { target: { value: '93100 Montreuil' } });
- const telephone = screen.getByLabelText('Téléphone Format attendu : +33122334455');
+ const telephone = screen.getByLabelText('Téléphone Format attendu : 0122334455 ou +33122334455');
fireEvent.change(telephone, { target: { value: '+33159590730' } });
const enEmploi = screen.getByRole('checkbox', { name: 'En emploi' });
fireEvent.click(enEmploi);
@@ -701,7 +702,7 @@ describe('candidature conseiller', () => {
fireEvent.change(date, { target: { value: dateDujour() } });
const _5km = screen.getByRole('radio', { name: '5 km' });
fireEvent.click(_5km);
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
// WHEN
diff --git a/src/views/candidature-conseiller/InformationsDeContact.jsx b/src/views/candidature-conseiller/InformationsDeContact.jsx
index 0e4b6bd7..3f8f6fc1 100644
--- a/src/views/candidature-conseiller/InformationsDeContact.jsx
+++ b/src/views/candidature-conseiller/InformationsDeContact.jsx
@@ -26,10 +26,10 @@ export default function InformationsDeContact() {
- Téléphone
Format attendu : +33122334455
+ Téléphone
Format attendu : 0122334455 ou +33122334455
diff --git a/src/views/candidature-conseiller/Motivation.jsx b/src/views/candidature-conseiller/Motivation.jsx
index eec77939..74602da7 100644
--- a/src/views/candidature-conseiller/Motivation.jsx
+++ b/src/views/candidature-conseiller/Motivation.jsx
@@ -10,7 +10,7 @@ export default function Motivation() {
aider les personnes à devenir autonomes dans l’utilisation des outils numériques.
- Votre message *
+ Votre message * Limité à 2500 caractères
);
diff --git a/src/views/candidature-coordinateur/CandidatureCoordinateur.test.jsx b/src/views/candidature-coordinateur/CandidatureCoordinateur.test.jsx
index 46dc99cb..da324a26 100644
--- a/src/views/candidature-coordinateur/CandidatureCoordinateur.test.jsx
+++ b/src/views/candidature-coordinateur/CandidatureCoordinateur.test.jsx
@@ -49,6 +49,10 @@ describe('candidature coordinateur', () => {
const etapeInformationsDeStructure = within(formulaire).getByRole('group', { name: 'Vos informations de structure' });
expect(etapeInformationsDeStructure).toHaveAttribute('id', 'informations-de-structure');
+ const siretOuRidet = within(etapeInformationsDeStructure).getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
+ expect(siretOuRidet).toHaveAttribute('id', 'siret');
+ expect(siretOuRidet).toBeRequired();
+
const denomination = within(etapeInformationsDeStructure).getByLabelText('Dénomination *');
expect(denomination).toHaveAttribute('type', 'text');
expect(denomination).toBeRequired();
@@ -111,13 +115,13 @@ describe('candidature coordinateur', () => {
expect(fonction).toHaveAttribute('type', 'text');
expect(fonction).toBeRequired();
- const email = within(etapeInformationsDeContact).getByLabelText('Adresse électronique *');
+ const email = within(etapeInformationsDeContact).getByLabelText('Adresse électronique * Format attendu : nom@domaine.fr');
expect(email).toHaveAttribute('type', 'email');
expect(email).toBeRequired();
- const telephone = within(etapeInformationsDeContact).getByLabelText('Téléphone *');
+ const telephone = within(etapeInformationsDeContact).getByLabelText('Téléphone * Format attendu : 0122334455 ou +33122334455');
expect(telephone).toHaveAttribute('type', 'tel');
- expect(telephone).toHaveAttribute('pattern', '[+](33|590|596|594|262|269|687)[0-9]{9}');
+ expect(telephone).toHaveAttribute('pattern', '([+][0-9]{11,12})|([0-9]{10})');
expect(telephone).toBeRequired();
});
@@ -190,7 +194,7 @@ describe('candidature coordinateur', () => {
);
expect(sousTitreVotreMotvation).toBeInTheDocument();
- const votreMessage = within(etapeMotivation).getByLabelText('Votre message *');
+ const votreMessage = within(etapeMotivation).getByLabelText('Votre message * Limité à 2500 caractères');
expect(votreMessage).toHaveAttribute('id', 'motivation');
expect(votreMessage).toBeRequired();
@@ -262,8 +266,8 @@ describe('candidature coordinateur', () => {
});
render(
);
- const siret = screen.getByLabelText('SIRET / RIDET *');
- fireEvent.change(siret, { target: { value: '1234567890123' } });
+ const siret = screen.getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
+ fireEvent.change(siret, { target: { value: '12345678901234' } });
const denomination = screen.getByLabelText('Dénomination *');
fireEvent.change(denomination, { target: { value: 'Entreprise' } });
const adresse = screen.getByLabelText('Adresse *');
@@ -276,9 +280,9 @@ describe('candidature coordinateur', () => {
fireEvent.change(nom, { target: { value: 'Dupont' } });
const fonction = screen.getByLabelText('Fonction *');
fireEvent.change(fonction, { target: { value: 'Test' } });
- const email = screen.getByLabelText('Adresse électronique *');
+ const email = screen.getByLabelText('Adresse électronique * Format attendu : nom@domaine.fr');
fireEvent.change(email, { target: { value: 'jean.dupont@example.com' } });
- const telephone = screen.getByLabelText('Téléphone *');
+ const telephone = screen.getByLabelText('Téléphone * Format attendu : 0122334455 ou +33122334455');
fireEvent.change(telephone, { target: { value: '+33123456789' } });
const identificationCandidat = screen.getByRole('radio', { name: 'Oui' });
fireEvent.click(identificationCandidat);
@@ -286,7 +290,7 @@ describe('candidature coordinateur', () => {
fireEvent.click(typeMission);
const date = screen.getByLabelText('Choisir une date');
fireEvent.change(date, { target: { value: dateDujour() } });
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
const confirmation = screen.getByRole('checkbox', { name: 'Je confirme avoir lu et pris connaissance des conditions d’engagement. *' });
fireEvent.click(confirmation);
@@ -321,8 +325,8 @@ describe('candidature coordinateur', () => {
vi.spyOn(ReactRouterDom, 'useNavigate').mockReturnValue(mockNavigate);
render(
);
- const siret = screen.getByLabelText('SIRET / RIDET *');
- fireEvent.change(siret, { target: { value: '1234567890123' } });
+ const siret = screen.getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
+ fireEvent.change(siret, { target: { value: '12345678901234' } });
const denomination = screen.getByLabelText('Dénomination *');
fireEvent.change(denomination, { target: { value: 'Entreprise' } });
const adresse = screen.getByLabelText('Adresse *');
@@ -335,9 +339,9 @@ describe('candidature coordinateur', () => {
fireEvent.change(nom, { target: { value: 'Dupont' } });
const fonction = screen.getByLabelText('Fonction *');
fireEvent.change(fonction, { target: { value: 'Test' } });
- const email = screen.getByLabelText('Adresse électronique *');
+ const email = screen.getByLabelText('Adresse électronique * Format attendu : nom@domaine.fr');
fireEvent.change(email, { target: { value: 'jean.dupont@example.com' } });
- const telephone = screen.getByLabelText('Téléphone *');
+ const telephone = screen.getByLabelText('Téléphone * Format attendu : 0122334455 ou +33122334455');
fireEvent.change(telephone, { target: { value: '+33123456789' } });
const identificationCandidat = screen.getByRole('radio', { name: 'Oui' });
fireEvent.click(identificationCandidat);
@@ -345,7 +349,7 @@ describe('candidature coordinateur', () => {
fireEvent.click(typeMission);
const date = screen.getByLabelText('Choisir une date');
fireEvent.change(date, { target: { value: dateDujour() } });
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
const confirmation = screen.getByRole('checkbox', { name: 'Je confirme avoir lu et pris connaissance des conditions d’engagement. *' });
fireEvent.click(confirmation);
@@ -487,8 +491,8 @@ describe('candidature coordinateur', () => {
});
render(
);
- const siret = screen.getByLabelText('SIRET / RIDET *');
- fireEvent.change(siret, { target: { value: '1234567890123' } });
+ const siret = screen.getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
+ fireEvent.change(siret, { target: { value: '12345678901234' } });
const denomination = screen.getByLabelText('Dénomination *');
fireEvent.change(denomination, { target: { value: 'Entreprise' } });
const adresse = screen.getByLabelText('Adresse *');
@@ -501,9 +505,9 @@ describe('candidature coordinateur', () => {
fireEvent.change(nom, { target: { value: 'Dupont' } });
const fonction = screen.getByLabelText('Fonction *');
fireEvent.change(fonction, { target: { value: 'Test' } });
- const email = screen.getByLabelText('Adresse électronique *');
+ const email = screen.getByLabelText('Adresse électronique * Format attendu : nom@domaine.fr');
fireEvent.change(email, { target: { value: 'jean.dupont@example.com' } });
- const telephone = screen.getByLabelText('Téléphone *');
+ const telephone = screen.getByLabelText('Téléphone * Format attendu : 0122334455 ou +33122334455');
fireEvent.change(telephone, { target: { value: '+33123456789' } });
const identificationCandidat = screen.getByRole('radio', { name: 'Oui' });
fireEvent.click(identificationCandidat);
@@ -511,7 +515,7 @@ describe('candidature coordinateur', () => {
fireEvent.click(typeMission);
const date = screen.getByLabelText('Choisir une date');
fireEvent.change(date, { target: { value: dateDujour() } });
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
const confirmation = screen.getByRole('checkbox', { name: 'Je confirme avoir lu et pris connaissance des conditions d’engagement. *' });
fireEvent.click(confirmation);
diff --git a/src/views/candidature-coordinateur/CompanyFinder.jsx b/src/views/candidature-coordinateur/CompanyFinder.jsx
index 8df16d4b..326bf19e 100644
--- a/src/views/candidature-coordinateur/CompanyFinder.jsx
+++ b/src/views/candidature-coordinateur/CompanyFinder.jsx
@@ -10,9 +10,10 @@ export default function CompanyFinder() {
<>
search(event.target.value))}
placeholder="N° SIRET / RIDET"
+ pattern="^[0-9]{9}|[0-9]{14}$"
+ maxlength="14"
/>
{entreprise}
>
diff --git a/src/views/candidature-coordinateur/Motivation.jsx b/src/views/candidature-coordinateur/Motivation.jsx
index 38bc2eae..b1525510 100644
--- a/src/views/candidature-coordinateur/Motivation.jsx
+++ b/src/views/candidature-coordinateur/Motivation.jsx
@@ -10,7 +10,7 @@ export default function Motivation() {
Indiquez les actions prévues, la justification du poste, ainsi que le public ciblé.
- Votre message *
+ Votre message * Limité à 2500 caractères
-
diff --git a/src/views/candidature-structure/CandidatureStructure.test.jsx b/src/views/candidature-structure/CandidatureStructure.test.jsx
index 2880f993..79c266af 100644
--- a/src/views/candidature-structure/CandidatureStructure.test.jsx
+++ b/src/views/candidature-structure/CandidatureStructure.test.jsx
@@ -33,7 +33,7 @@ describe('candidature structure', () => {
const informationsDeContact = within(menuItems[1]).getByRole('link', { name: 'Vos informations de contact' });
expect(informationsDeContact).toHaveAttribute('href', '#informations-de-contact');
- const votreBesoinEnConseillerNumerique = within(menuItems[2]).getByRole('link', { name: 'Votre besoin en conseiller numérique' });
+ const votreBesoinEnConseillerNumerique = within(menuItems[2]).getByRole('link', { name: 'Votre besoin en conseiller(s) numérique(s)' });
expect(votreBesoinEnConseillerNumerique).toHaveAttribute('href', '#votre-besoin-en-conseiller-numerique');
const votreMotivation = within(menuItems[3]).getByRole('link', { name: 'Votre motivation' });
expect(votreMotivation).toHaveAttribute('href', '#votre-motivation');
@@ -48,7 +48,7 @@ describe('candidature structure', () => {
const etapeInformationsDeStructure = within(formulaire).getByRole('group', { name: 'Vos informations de structure' });
expect(etapeInformationsDeStructure).toHaveAttribute('id', 'informations-de-structure');
- const siretOuRidet = within(etapeInformationsDeStructure).getByLabelText('SIRET / RIDET *');
+ const siretOuRidet = within(etapeInformationsDeStructure).getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
expect(siretOuRidet).toHaveAttribute('id', 'siret');
expect(siretOuRidet).toBeRequired();
@@ -115,13 +115,13 @@ describe('candidature structure', () => {
expect(fonction).toHaveAttribute('type', 'text');
expect(fonction).toBeRequired();
- const email = within(etapeInformationsDeContact).getByLabelText('Adresse électronique *');
+ const email = within(etapeInformationsDeContact).getByLabelText('Adresse électronique * Format attendu : nom@domaine.fr');
expect(email).toHaveAttribute('type', 'email');
expect(email).toBeRequired();
- const telephone = within(etapeInformationsDeContact).getByLabelText('Téléphone *');
+ const telephone = within(etapeInformationsDeContact).getByLabelText('Téléphone * Format attendu : 0122334455 ou +33122334455');
expect(telephone).toHaveAttribute('type', 'tel');
- expect(telephone).toHaveAttribute('pattern', '[+](33|590|596|594|262|269|687)[0-9]{9}');
+ expect(telephone).toHaveAttribute('pattern', '([+][0-9]{11,12})|([0-9]{10})');
expect(telephone).toBeRequired();
});
@@ -188,7 +188,7 @@ describe('candidature structure', () => {
);
expect(sousTitreVotreMotvation).toBeInTheDocument();
- const votreMessage = within(etapeMotivation).getByLabelText('Votre message *');
+ const votreMessage = within(etapeMotivation).getByLabelText('Votre message * Limité à 2500 caractères');
expect(votreMessage).toHaveAttribute('id', 'motivation');
expect(votreMessage).toBeRequired();
});
@@ -211,7 +211,7 @@ describe('candidature structure', () => {
within(listDetail[2]).getByText('Qu’il revête une tenue vestimentaire dédiée fournie par l’Etat,');
within(listDetail[3]).getByText('Tout mettre en oeuvre pour sélectionner le candidat dans un délai maximum d’un mois sur la plateforme,');
within(listDetail[4]).getByText('Signer dans les 15 jours suivants un contrat avec ce candidat,');
- within(listDetail[5]).getByText('Laisser partir le conseiller numérique France Services en formation initiale ou continue,');
+ within(listDetail[5]).getByText('Laisser partir le conseiller numérique en formation initiale ou continue,');
within(listDetail[6]).getByText('Mettre à sa disposition les moyens et ' +
'équipements pour réaliser sa mission (ordinateur, téléphone portable, voiture si nécessaire),');
@@ -245,7 +245,7 @@ describe('candidature structure', () => {
render();
// WHEN
- const siretInput = screen.getByLabelText('SIRET / RIDET *');
+ const siretInput = screen.getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
fireEvent.change(siretInput, { target: { value: '13002603200016' } });
// THEN
@@ -274,7 +274,7 @@ describe('candidature structure', () => {
render();
// WHEN
- const ridetInput = screen.getByLabelText('SIRET / RIDET *');
+ const ridetInput = screen.getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
fireEvent.change(ridetInput, { target: { value: '1071539' } });
// THEN
@@ -289,7 +289,7 @@ describe('candidature structure', () => {
render();
// WHEN
- const siretInput = screen.getByLabelText('SIRET / RIDET *');
+ const siretInput = screen.getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
fireEvent.change(siretInput, { target: { value: '1300260320001' } });
// THEN
@@ -314,7 +314,7 @@ describe('candidature structure', () => {
render();
// WHEN
- const siretInput = screen.getByLabelText('SIRET / RIDET *');
+ const siretInput = screen.getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
fireEvent.change(siretInput, { target: { value: '13002603200016' } });
// THEN
@@ -355,8 +355,8 @@ describe('candidature structure', () => {
});
render();
- const siret = screen.getByLabelText('SIRET / RIDET *');
- fireEvent.change(siret, { target: { value: '1234567890123' } });
+ const siret = screen.getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
+ fireEvent.change(siret, { target: { value: '12345678901234' } });
const denomination = screen.getByLabelText('Dénomination *');
fireEvent.change(denomination, { target: { value: 'Entreprise' } });
const adresse = screen.getByLabelText('Adresse *');
@@ -369,9 +369,9 @@ describe('candidature structure', () => {
fireEvent.change(nom, { target: { value: 'Dupont' } });
const fonction = screen.getByLabelText('Fonction *');
fireEvent.change(fonction, { target: { value: 'Test' } });
- const email = screen.getByLabelText('Adresse électronique *');
+ const email = screen.getByLabelText('Adresse électronique * Format attendu : nom@domaine.fr');
fireEvent.change(email, { target: { value: 'jean.dupont@example.com' } });
- const telephone = screen.getByLabelText('Téléphone *');
+ const telephone = screen.getByLabelText('Téléphone * Format attendu : 0122334455 ou +33122334455');
fireEvent.change(telephone, { target: { value: '+33123456789' } });
const nombre = screen.getByLabelText('Combien de conseillers numériques souhaitez-vous accueillir ? *');
fireEvent.change(nombre, { target: { value: 1 } });
@@ -379,7 +379,7 @@ describe('candidature structure', () => {
fireEvent.click(identificationCandidat);
const date = screen.getByLabelText('Choisir une date');
fireEvent.change(date, { target: { value: dateDujour() } });
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
const confirmation = screen.getByRole('checkbox', { name: 'Je confirme avoir lu et pris connaissance des conditions d’engagement. *' });
fireEvent.click(confirmation);
@@ -414,8 +414,8 @@ describe('candidature structure', () => {
vi.spyOn(ReactRouterDom, 'useNavigate').mockReturnValue(mockNavigate);
render();
- const siret = screen.getByLabelText('SIRET / RIDET *');
- fireEvent.change(siret, { target: { value: '1234567890123' } });
+ const siret = screen.getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
+ fireEvent.change(siret, { target: { value: '12345678901234' } });
const denomination = screen.getByLabelText('Dénomination *');
fireEvent.change(denomination, { target: { value: 'Entreprise' } });
const adresse = screen.getByLabelText('Adresse *');
@@ -428,9 +428,9 @@ describe('candidature structure', () => {
fireEvent.change(nom, { target: { value: 'Dupont' } });
const fonction = screen.getByLabelText('Fonction *');
fireEvent.change(fonction, { target: { value: 'Test' } });
- const email = screen.getByLabelText('Adresse électronique *');
+ const email = screen.getByLabelText('Adresse électronique * Format attendu : nom@domaine.fr');
fireEvent.change(email, { target: { value: 'jean.dupont@example.com' } });
- const telephone = screen.getByLabelText('Téléphone *');
+ const telephone = screen.getByLabelText('Téléphone * Format attendu : 0122334455 ou +33122334455');
fireEvent.change(telephone, { target: { value: '+33123456789' } });
const nombre = screen.getByLabelText('Combien de conseillers numériques souhaitez-vous accueillir ? *');
fireEvent.change(nombre, { target: { value: 1 } });
@@ -438,7 +438,7 @@ describe('candidature structure', () => {
fireEvent.click(identificationCandidat);
const date = screen.getByLabelText('Choisir une date');
fireEvent.change(date, { target: { value: dateDujour() } });
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
const confirmation = screen.getByRole('checkbox', { name: 'Je confirme avoir lu et pris connaissance des conditions d’engagement. *' });
fireEvent.click(confirmation);
@@ -581,8 +581,8 @@ describe('candidature structure', () => {
});
render();
- const siret = screen.getByLabelText('SIRET / RIDET *');
- fireEvent.change(siret, { target: { value: '1234567890123' } });
+ const siret = screen.getByLabelText('SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)');
+ fireEvent.change(siret, { target: { value: '12345678901234' } });
const denomination = screen.getByLabelText('Dénomination *');
fireEvent.change(denomination, { target: { value: 'Entreprise' } });
const adresse = screen.getByLabelText('Adresse *');
@@ -595,9 +595,9 @@ describe('candidature structure', () => {
fireEvent.change(nom, { target: { value: 'Dupont' } });
const fonction = screen.getByLabelText('Fonction *');
fireEvent.change(fonction, { target: { value: 'Test' } });
- const email = screen.getByLabelText('Adresse électronique *');
+ const email = screen.getByLabelText('Adresse électronique * Format attendu : nom@domaine.fr');
fireEvent.change(email, { target: { value: 'jean.dupont@example.com' } });
- const telephone = screen.getByLabelText('Téléphone *');
+ const telephone = screen.getByLabelText('Téléphone * Format attendu : 0122334455 ou +33122334455');
fireEvent.change(telephone, { target: { value: '+33123456789' } });
const nombre = screen.getByLabelText('Combien de conseillers numériques souhaitez-vous accueillir ? *');
fireEvent.change(nombre, { target: { value: 1 } });
@@ -605,7 +605,7 @@ describe('candidature structure', () => {
fireEvent.click(identificationCandidat);
const date = screen.getByLabelText('Choisir une date');
fireEvent.change(date, { target: { value: dateDujour() } });
- const descriptionMotivation = screen.getByLabelText('Votre message *');
+ const descriptionMotivation = screen.getByLabelText('Votre message * Limité à 2500 caractères');
fireEvent.change(descriptionMotivation, { target: { value: 'je suis motivé !' } });
const confirmation = screen.getByRole('checkbox', { name: 'Je confirme avoir lu et pris connaissance des conditions d’engagement. *' });
fireEvent.click(confirmation);
diff --git a/src/views/candidature-structure/CompanyFinder.jsx b/src/views/candidature-structure/CompanyFinder.jsx
index 8e2c7d91..de29c4b4 100644
--- a/src/views/candidature-structure/CompanyFinder.jsx
+++ b/src/views/candidature-structure/CompanyFinder.jsx
@@ -11,10 +11,11 @@ export default function CompanyFinder({ onSearch }) {
return (
handleSearch(event.target.value)}
+ pattern="^(?:[0-9]{9}|[0-9]{14})$"
+ maxlength="14"
>
- SIRET / RIDET *
+ SIRET / RIDET * Format attendu : SIRET (12345678901234) ou RIDET (123456789)
);
}
diff --git a/src/views/candidature-structure/Engagement.jsx b/src/views/candidature-structure/Engagement.jsx
index aacaa4b9..94167b96 100644
--- a/src/views/candidature-structure/Engagement.jsx
+++ b/src/views/candidature-structure/Engagement.jsx
@@ -12,7 +12,7 @@ export default function Engagement() {
- Qu’il revête une tenue vestimentaire dédiée fournie par l’Etat,
- Tout mettre en oeuvre pour sélectionner le candidat dans un délai maximum d’un mois sur la plateforme,
- Signer dans les 15 jours suivants un contrat avec ce candidat,
- - Laisser partir le conseiller numérique France Services en formation initiale ou continue,
+ - Laisser partir le conseiller numérique en formation initiale ou continue,
- Mettre à sa disposition les moyens et équipements pour réaliser sa mission (ordinateur, téléphone portable, voiture si nécessaire),
diff --git a/src/views/candidature-structure/InformationsDeContact.jsx b/src/views/candidature-structure/InformationsDeContact.jsx
index 74756d7e..d866b8fe 100644
--- a/src/views/candidature-structure/InformationsDeContact.jsx
+++ b/src/views/candidature-structure/InformationsDeContact.jsx
@@ -29,15 +29,16 @@ export default function InformationsDeContact() {
name="email"
type="email"
>
- Adresse électronique *
+ Adresse électronique * Format attendu : nom@domaine.fr
- Téléphone *
+ Téléphone *{' '}
+ Format attendu : 0122334455 ou +33122334455
);
diff --git a/src/views/candidature-structure/Motivation.jsx b/src/views/candidature-structure/Motivation.jsx
index cd0507a8..0004c646 100644
--- a/src/views/candidature-structure/Motivation.jsx
+++ b/src/views/candidature-structure/Motivation.jsx
@@ -10,7 +10,7 @@ export default function Motivation() {
Indiquez les actions prévues, la justification du poste, ainsi que le public ciblé.
- Votre message *
+ Votre message * Limité à 2500 caractères
);
diff --git a/src/views/candidature-structure/SommaireStructure.jsx b/src/views/candidature-structure/SommaireStructure.jsx
index 510fa214..ed1934fc 100644
--- a/src/views/candidature-structure/SommaireStructure.jsx
+++ b/src/views/candidature-structure/SommaireStructure.jsx
@@ -13,7 +13,7 @@ export default function SommaireStructure() {
},
{
ancre: '#votre-besoin-en-conseiller-numerique',
- libelle: 'Votre besoin en conseiller numérique'
+ libelle: 'Votre besoin en conseiller(s) numérique(s)'
},
{
ancre: '#votre-motivation',
From ab5566e40948cb2adffcaed84e9924fd351cf72f Mon Sep 17 00:00:00 2001
From: Ornella <68587983+Ornella452@users.noreply.github.com>
Date: Mon, 25 Nov 2024 09:29:06 +0100
Subject: [PATCH 02/11] migrate hcaptcha vers turnstile (captcha cloudflare)
(#248)
---
index.html | 2 +-
src/components/commun/Captcha.jsx | 15 +++++++++++----
src/components/commun/Input.jsx | 2 +-
src/components/commun/ZoneDeTexte.jsx | 2 +-
.../candidature-conseiller/AddressChooser.jsx | 2 +-
.../CandidatureConseiller.jsx | 7 ++++---
.../CandidatureConseiller.test.jsx | 16 +++++++++-------
src/views/candidature-conseiller/useGeoApi.js | 4 ++--
.../CandidatureCoordinateur.jsx | 7 ++++---
.../CandidatureCoordinateur.test.jsx | 14 ++++++++------
.../CandidatureStructure.jsx | 7 ++++---
.../CandidatureStructure.test.jsx | 14 ++++++++------
12 files changed, 54 insertions(+), 38 deletions(-)
diff --git a/index.html b/index.html
index fbbab0c0..79e10e15 100644
--- a/index.html
+++ b/index.html
@@ -43,6 +43,6 @@
})();
-
+