#javascript #reactjs #react-redux #jestjs #enzyme
#язык JavaScript #реагирует на #реагировать-переделывать #jestjs #фермент
Вопрос:
Я создал форму входа в систему в React. Эта форма содержит имя пользователя, пароль в качестве входных данных. Кроме того, я добавил кнопку. Теперь мне нужно написать модульный тест для нажатия кнопки (handleLogin). У кого-нибудь могут быть мысли или рекомендации?
Ниже приведен пример кода,
Код JS
handleLogin = (e) =gt; { e.preventDefault(); this.setState({ spinner: !this.state.spinner, }); let userName = e.target.userEmail.value; let password = e.target.userPassword.value; let userData = { userName, password }; let config = { headers: { "Access-Control-Allow-Origin": "*", "Content-Type": "application/json", }, }; axios .post(BASE_URL "/login", userData, config) .then((res) =gt; { localStorage.clear(); if (res.data.message) { this.setState({ errorMessage: res.data.message, spinner: false, }); } else if (res.data.newPasswordRequired) { this.props.signInUser({ isUserLoggedIn: false, currentUser: e.target.userEmail.value, bearerToken: "", userDisplayName: "", userRole: "", }); this.props.history.push({ pathname: CREATE_PASSWORD, password: e.target.userPassword.value, }); } }) .catch((err) =gt; { console.log(err.response?.data); this.setState({ errorMessage: "Incorrect username or password.", spinner: false, }); }); };
HTML-код
render(){ return ( lt;divgt; lt;form className="signIn__form" onSubmit={this.handleLogin}gt; lt;Input type="email" name="userEmail" placeholder="Email" /gt; lt;Input type="password" name="userPassword" placeholder="Password" /gt; lt;/formgt; lt;/divgt; ) }