#reactjs #jestjs #react-testing-library #okta
#reactjs #jestjs #react-testing-library #okta
Вопрос:
У меня есть такой тест:
it('should login successfully', async () => {
let { baseElement, getByPlaceholderText, findByText } = render(renderComponent);
expect(baseElement).toBeTruthy();
expect(await findByText(/Welcome/i)).toBeInTheDocument();
fireEvent.change(getByPlaceholderText('Username'), { target: { value: 'test@test.com' } });
fireEvent.change(getByPlaceholderText('Password'), { target: { value: 'secret' } });
fireEvent.click(getByText(/Log in/i));
// for some reason this does not work. Can anybody help with this?
expect(await findByText(/Dashboard/i)).toBeInTheDocument();
});
Панель мониторинга никогда не найдена. По-видимому, библиотека тестирования react не обнаруживает, что страница должна была перенаправляться на страницу панели мониторинга после успешного входа в систему.
Внутри моего компонента входа в систему,
const formik = useFormik({
[...]
onSubmit: (values, { setStatus, setSubmitting }) => {
console.log('during testing, it gets here');
oktaAuth
.signInWithCredentials({
username: values.username,
password: values.password,
})
.then((res) => {
console.log('but never gets here');
[...]
})
.catch((err) => {
console.log('nor gets here');
[...]
});
},
});
Комментарии:
1. Повезло с этим?
2. К сожалению, нет.
3. Это может вам помочь: github.com/okta/okta-react/issues/133