Функция prop в componentDidUpdate не вызывается при подключенном тесте фермента - PullRequest
0 голосов
/ 31 октября 2018

У меня есть компонент на основе классов, который имеет следующий метод:

componentDidUpdate(prevProps) {
  if (prevProps.location.pathname !== this.props.location.pathname) {
    this.props.onDelete();
  }
}

У меня есть следующий тест, который не проходит:

  it(`should call the 'onDelete' function when 'location.pathName' prop changes`, () => {
    const wrapper = mount(<AlertsList.WrappedComponent {...props} />);

    // test that the deleteFunction wasn't called yet
    expect(deleteFunction).not.toHaveBeenCalled();

    // now update the prop
    wrapper.setProps({ location: { ...props.location, pathName: "/otherpath" } });

    // now check that the deleteFunction was called
    expect(deleteFunction).toHaveBeenCalled();
  });

где props инициализируется в операторе beforeEach следующим образом:

  beforeEach(() => {
    props = {
      ...
      location: { pathName: "/" }
    };
  });

Но мой тест завершается неудачно во втором случае после вызова setProps, где я ожидаю, что будет запущен метод жизненного цикла. Что я тут не так делаю?

1 Ответ

0 голосов
/ 31 октября 2018

Проблема была опечаткой, см. Комментарии под моим оригинальным сообщением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...