#reactjs #jestjs #enzyme
#reactjs #jestjs #фермент
Вопрос:
Я пытаюсь протестировать свой функциональный компонент React с помощью Jest, но я столкнулся с проблемой, пытаясь обновить состояние компонента.
Вот мой простой компонент:
import {FunctionComponent, useEffect, useState} from "react";
import {LoginForm} from './../form/LoginForm';
import {requestConnexion} from "../../effector/UserEffects";
export const Login: FunctionComponent = () => {
const [error, setError] = useState("");
useEffect(()=>{
return requestConnexion.done.watch(({result, params}) => {
console.log(result.data);
userConnected(result.data["token"]);
// @ts-ignore
addProfileToStore(result.data["userProfile"]);
console.log("[LOGIN_PAGE] User connected");
history.push('/');
})
})
useEffect(()=>{
return requestConnexion.fail.watch(({error, params}) => {
console.log(params);
setErrorToState("Bad credentials");
})
})
const setErrorToState = (error:string) => {
setError(error);
}
return (
<div>
<LoginForm error={error}/>
</div>
)
}
export default Login;
Я пытался использовать функцию setState
из enzyme, но она работает только с class component ?
Комментарии:
1. можете ли вы дать более подробное объяснение того, что именно терпит неудачу?
2. Состояние задается с помощью requestConnexion, поэтому установите его таким образом, при необходимости смоделируйте его.
3. @lucasreta У меня следующая ошибка: ShallowWrapper::setState() может быть вызван только для компонентов класса