Выписка не покрыта - не может войти внутрь функции - PullRequest
1 голос
/ 01 октября 2019

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

  const handleClickOutside = (e: CustomEvent) => {
    if (dropdownRef.current!.contains(e.target as Node)) {
      return;
    }
    changeFocusedElement(findSelectedItemIndex());
    setShowList(!showList);
  };

Я пытаюсь проверить его следующим образом:

  it('Hides list after call handleClickOutside method', () => {
    const outerNode = document.createElement('div');
    document.body.appendChild(outerNode);

    const WrappingComponent = (props: { children: React.ReactElement }) => (
      withTestTheme(props.children)
    );
    const wrapper = mount(
      <SelectNew options={testOptions} value="test" />,
      {
        wrappingComponent: WrappingComponent,
      },
    );
    wrapper.find('.dropdown__field').simulate('click');
    expect(wrapper.find('ul').exists()).toBe(true);

    outerNode.dispatchEvent(new Event('mousedown'));

    wrapper.update();
    expect(wrapper.find('ul').exists()).toBe(false);
  });

, но я не могу войти в функцию, котораяпоказано в отчете о тестовом покрытии:

enter image description here

Ниже, как вызывается функция:

  useEffect(
    () => {
      if (showList) {
        document.addEventListener('mousedown', handleClickOutside);
      } else {
        document.removeEventListener('mousedown', handleClickOutside);
      }

      return () => {
        document.removeEventListener('mousedown', handleClickOutside);
      };
    },
    [showList],
  );

Любая идея, как пройти внутрьфункционировать?

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