#reactjs #unit-testing #jestjs
Вопрос:
//Login.js
импорт {useSelector, useDispatch } из «react-redux»;
импортируйте заголовок из ‘./Заголовок’;
импорт {Форма отправки, изменение вручную} из «../действия/аутентификация»;
заголовок журнала const = () => {
const selector = useSelector(state => state.authentication);
const dispatch = useDispatch();
const submitFormagin = (e) => {
e.preventDefault();
let params = {
email : selector.email.replace(/s/g, '').toLowerCase(),
password : selector.password.replace(/s/g, ''),
user_ip : selector.login_ip
}
//Hit api
dispatch(submitForm(params,"login"))
}
return(
<>
<Header/>
<section className="height100 create-account">
<div className="signup_left">
<div className="white-bg">
<div className="signup_form">
<form onSubmit = {e => submitFormagin(e)} data-testid="form">
<div className="form-group">
<input type="text" data-testid = "email" className="form-control" name="email" placeholder="Email*" value={selector.email} onChange = {e => dispatch(handleChange(e))}/>
</div>
<div className="form-group">
<input type={selector.passattibutetype} data-testid = "password" className="form-control eye-close" name="password" placeholder="Password*" value={selector.password} onChange = {e => dispatch(handleChange(e))}/>
</div>
<button type="submit" className="loginbtn" data-testid = "button">
<div className="d-flex align-items-center justify-content-center h-100 w-100">
<div className={selector.loader}>
<img src={selector.loaderimage} alt="loader"/>
</div>
<div>
{selector.submitval}
</div>
</div>
</button>
</form>
</div>
</div>
</div>
</section>
</>
)
}
заголовок журнала экспорта по умолчанию;
//Login.test.js
импорт { визуализация, событие пожара, очистка, ожидание } из ‘@testing-library/react’;
import Loginheader from './Login';
import store from '../store';
импорт { BrowserRouter } из ‘react-router-dom’;
импорт { Поставщик } из «react-redux»;
опишите(«Вход», () => {
afterEach(cleanup);
test("Check Snapshot", () => {
const {container} = render(<BrowserRouter><Provider store={store}><Loginheader /></Provider></BrowserRouter>)
expect(container).toMatchSnapshot();
})
test("Form submit", async () => {
const { getByTestId} = render(<BrowserRouter><Provider store={store}><Loginheader /></Provider></BrowserRouter>)
const emailval = "xyz";
fireEvent.change(getByTestId('email'), { target : {
value:emailval
}});
fireEvent.change(getByTestId('password'), { target : {
value:"123456"
}});
fireEvent.submit(getByTestId('form'));
await waitFor(() => {
expect(getByTestId('password').value).toBe(emailval)
expect(getByTestId('email').value).toBe(emailval)
})
})
})
Комментарии:
1. Здесь действительно нет вопроса — не хотите ли уточнить, что происходит, и, возможно, переформатировать блоки кода?