#javascript #reactjs #typescript #jestjs #material-ui
#javascript #reactjs #typescript #jestjs #материал-пользовательский интерфейс
Вопрос:
У меня возникли проблемы с тестированием моментальных снимков и я не могу понять, почему. Я получаю следующую ошибку:
введите описание изображения здесь
Компонент на самом деле представляет собой форму с 3 полями: полное имя, адрес электронной почты и Примечание. Существует также флажок, который управляет полем электронной почты и заметок на случай, если мы не хотим помещать эту информацию в форму. Для заметки я использую textareautosize, чтобы изменить размер текстовой области (в соответствии с требованиями).
const [missingInfo, setMissingInfo] = useState(false);
const initialValues = {
fullName: '',
email: '',
note: '',
};
return (
<Formik
initialValues={initialValues}
validationSchema={object({
fullName: string().required('Must contain a full name'),
})}
onSubmit={(values, { setSubmitting }) => {
setSubmitting(true);
...
}}
>
<Form>
<Typography>Title</Typography>
<HashLink
to={{ hash: '#xxx' }}
onClick={() => toggleHash()}
>
Changed your mind?
</HashLink>
<Typography>Full name</Typography>
<Field name="fullName">
{({ field }: FieldProps) => (
<TextField
id="fullName"
variant="outlined"
type="text"
fullWidth
{...field}
/>
)}
</Field>
<ErrorMessage name="fullName">
{msg => <div className={styles.errorMessage}>{msg}</div>}
</ErrorMessage>
<FormControlLabel
control={
<Checkbox
checked={missingInfo}
onChange={() => setMissingInfo(!missingInfo)}
name="missingInfo"
/>
}
label="No info?"
/>
{!missingInfo amp;amp; (
<>
<Typography>Email</Typography>
<Field name="email">
{({ field }: FieldProps) => (
<TextField
id="email"
variant="outlined"
type="text"
fullWidth
{...field}
/>
)}
</Field>
<Typography>Note</Typography>
<Field name="note">
{({ field }: FieldProps) => (
<TextareaAutosize
rowsMin={3}
className={styles.textArea}
{...field}
/>
)}
</Field>
</>
)}
<Button
variant="contained"
type="submit"
>
Apply
</Button>
</Form>
</Formik>
)
Ошибка, как я сказал в тесте моментального снимка:
test('matches snapshot', () => {
const tree = renderer
.create(
<BrowserRouter>
<MyComponent {...props} />
</BrowserRouter>,
)
.toJSON();
expect(tree).toMatchSnapshot();
});
Может кто-нибудь, пожалуйста, помочь?
Комментарии:
1. Вы когда-нибудь это выясняли? Я столкнулся с той же проблемой. Спасибо!