У меня есть простой компонент React, который использует хук useState.Этот компонент корректно работает в приложении, но мой тест Jest выдает ошибку «Хуки могут быть вызваны только внутри тела компонента функции».Насколько я могу судить, я правильно вызываю useState, и, опять же, он прекрасно работает, когда я запускаю приложение.
Я использую версию 16.8.4 обоих реагирующих и реагирующих доменов, что проверено npmls.
Вот компонент целиком:
import React, {useState} from 'react';
import './ExampleComponent.css';
function ExampleComponent(props) {
const [count, setCount] = useState(0);
const handler = () => setCount(count + 1);
return (
<div className='example-component'>
<span>This component is a test</span>
<button onClick={handler}>Test</button>
<input readOnly={true} value={count}></input>
</div>
);
};
export default ExampleComponent;
А вот соответствующий тест Jest (с использованием фермента):
import React from 'react';
import ExampleComponent from './ExampleComponent';
describe('<ExampleComponent />', () => {
const options = {
targetElementId: 'fake-element-id'
};
const wrapper = shallow(<ExampleComponent options={options} />);
it('renders a div', () => expect(wrapper.find('div').exists()).toBe(true));
});
Я прочитал вВ некоторых источниках Enzyme не работает с хуками, но у меня есть сотрудник, у которого нет проблем.Я сравнил наши файлы package.json и конфиги webpack и не могу найти никаких отличий.