it("test", () => {
let setupComponent;
let hook;
setupComponent = mountReactHook(useInputState); // Mount a Component with our hook
hook = setupComponent.componentHook;
expect(hook.value).toEqual('');
act(() => {
hook.onChange({target:{value: 1}});
});
expect(hook.value).toEqual(1);
});
У меня есть этот модульный тест, но я получаю ошибку: TypeError: (0, _Wrapper.default) не является функцией. Я понимаю, что ошибка связана с функцией mountReactHook, поскольку именно там, где я ее вызываю, я получаю сообщение об ошибке, но на самом деле я не вижу в этом ничего плохого.
import { useState } from 'react';
export default () => {
const [value, setValue] = useState('');
return {
value,
onChange: (event) => {
setValue(event.target.value);
},
reset: () => setValue('')
};
};
Это крючок.
import React from 'react';
import { shallow } from 'enzyme';
import { act } from 'react-dom/test-utils';
export const mountReactHook = hook => {
const Component = ({ children }) => children(hook());
const componentHook = {};
let componentMount;
act(() => {
componentMount = shallow(
<Component>
{hookValues => {
Object.assign(componentHook, hookValues);
return null;
}}
</Component>
);
});
return { componentMount, componentHook };
};
Это функция издевательства. Что мне нужно исправить?