У меня есть форма, построенная с использованием react-final-form
, yup
и Material-ui
. Я тестирую с использованием Jest
и @testing-library/react
.
TL; DR:
- Есть ли способ для проверки и проверки только функции
onSubmit
при обходе / использовании validate
функциональность? - Есть ли лучший способ go об этом?
Поддельная функция onSubmit
не была вызвана, потому что я использовал RFF
s validate
функция. Кажется, функция validate
зависает во время процесса отправки. Помимо насмешек над функцией validate
, существует ли передовой опыт при построении функции валидатора, чтобы тесты распознавали, что имитированный onSubmit
был вызван?
Когда я пытаюсь проверить, форма была отправлена, похоже, она зависла в методе проверки.
fireEvent.submit(getByTestId('test-form')) // or
fireEvent.click(getByTestId('submit-button'))
Функция mocked onSubmit не распознается и, кажется, зависает validate
метод.
const schema = yup.object().shape({
code: yup
.string()
.trim()
.required('Please provide a Code')
.max(32, 'The Code is too long')
})
const validate = values =>
schema
.validate(values, { abortEarly: false })
.then(valid => ({}))
.catch(err => extractError(err))
<Form
onSubmit={onSubmit}
validate={validate}
render={({ handleSubmit }) => (
<form onSubmit={handleSubmit}>
{...fields and submit button here}
</form>
)
/>