Невозможно протестировать HO C содержащие хуки с помощью библиотеки тестирования React - PullRequest
0 голосов
/ 13 апреля 2020

Ниже приведен код для HO C

const HOC = ({ component: Component }) => {
  return () => {
     const id = useQuery(query);
     return (<div> 
         {!id ? ( <SomeOtherComponent prop1={'hello'} prop2={'world'} /> ) : ( <Component /> )}
     </div>)
  }
}

Ниже приведен тест для отрисовки HO C -

const myComponent = () => <div data-testid={'component-testid'}>ABC</div>;
    const renderHOC = HOC({component: myComponent})();
    const {getByTestId} = render(renderHOC);
    expect(getByTestId('component-testid')).toBeInTheDocument();

Получение сообщения об ошибке - неверный вызов ловушки. Реактивные хуки должны вызываться внутри реактивного функционального компонента.

1 Ответ

0 голосов
/ 17 апреля 2020

Это должно быть следующим образом

const RenderHOC = HOC({component: myComponent});
const { getByTestId } = render(<RenderHOC />);

Невозможно вызвать компонент как функцию, если он содержит хуки.

...