Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

252
Visualizações
Formik Yup not working properly `.test()` custom validation setting for one input impact all others input

so i have this schema validation :

const validationSchema = Yup.object().shape({
    username: Yup.string()
      .min(2, 'votre surnom doit contenir minimum 2 caractères')
      .max(30, '30 caractères maximum autorisés')
      .required('Veuillez renseigner un pseudo'),
    email: Yup.string()
      .email('Veuillez renseigner une adresse mail valide')
      .required('Ce champs est obligatoire.')
      .test(
        'emailCheck',
        'cet est email déjà utiliser, veuillez en choisir un autre',
        async (value) => {
          const res = await AuthenticationService.checkEmail(value);
          if (res) {
            return false;
          } else {
            return true;
          }
        }
      ),
    password: Yup.string()
      .required('Ce champs est obligatoire.')
      .min(
        8,
        'Le mot de passe doit contenir 8 caractères ou plus, dont au moins un de chaque type : majuscule, minuscule, chiffre et spécial.'
      )
      .minLowercase(1, 'le mot de passe doit contenir au moins 1 lettre minuscule')
      .minUppercase(1, 'le mot de passe doit contenir au moins 1 lettre majuscule')
      .minNumbers(1, 'le mot de passe doit contenir au moins 1 chiffre')
      .minSymbols(1, 'le mot de passe doit contenir au moins 1 caractère spécial'),
    passwordConfirmation: Yup.string().oneOf(
      [Yup.ref('password'), null],
      'Les mots de passe doivent correspondre'
    )
  });

i'm testing if the email already exist it's work well but the test affecting all other input when i quit the username input and go on the password input for example the test for the email input is call. if i try to pu a test like a checkUsername function on the username input like this:

username: Yup.string()
  .min(2, 'votre surnom doit contenir minimum 2 caractères')
  .max(30, '30 caractères maximum autorisés')
  .required('Veuillez renseigner un pseudo')
  .test(
    'usernameCheck',
    'cet est identifiant déjà utiliser, veuillez en choisir un autre',
    async (value) => {
      const res = await AuthenticationService.checkUsername(value);
      if (res) {
        return false;
      } else {
        return true;
      }
    }
  ),
email: Yup.string()
  .email('Veuillez renseigner une adresse mail valide')
  .required('Ce champs est obligatoire.')
  .test(
    'emailCheck',
    'cet est email déjà utiliser, veuillez en choisir un autre',
    async (value) => {
      const res = await AuthenticationService.checkEmail(value);
      if (res) {
        return false;
      } else {
        return true;
      }
    }
  ),

the checkEmail function email still be called for the username input.

about 4 years ago · Santiago Gelvez
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda