Как бы я посмеялся над этим, используя Jest?
Кажется, асинхронное ожидание не работает для меня. Может быть, моя реализация неверна. Кто-нибудь подскажет, как я мог бы правильно смоделировать вызов этой функции 'userLogin'?
Составная часть:
export default Wrapped =>
class extends React.Component {
import { userLogin } from './services/userService';
logIn = () => {
return userLogin('user, 'password')
.then(() => {
this.props.history.push('/');
})
.catch(error => {
//I'll test something happens in here
console.log('error');
});
}
};
Обслуживание:
import axios from 'axios';
export const userLogin = (email, password) => {
return axios
.post('/login')
.then(response => {
.....
});
};
Тестовое задание:
it('calls ... when rejected', async () => {
const Container = loginContainer(Login);
const wrapper = shallow(<Container history={ history }/>);
userService.userLogin = jest.fn().mockRejectedValue('error');
await wrapper.instance().logIn()
.catch(() => {
expect(something).toHaveBeenCalled();
});
});