Как бы я посмеялся над этим, используя 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();
      });
  }); 

0 ответов

Другие вопросы по тегам