Digamos que necesito probar este Componente. Obtiene estado y setter a través de accesorios. Cómo debería verse la prueba, perdí 4 horas tratando de resolverlo, pero nada realmente funciona.
Componente.jsx
export function Component({ isShowing, setShow }) { return ( <> <button onClick={() => { setShow(!isShowing); }} > Toggle </button> {isShowing && <h1>Showing</h1>} </> ); }Esto es algo que estaba pensando pero no pasa.
Componente.prueba.js
import Enzyme, { mount } from 'enzyme'; import EnzymeAdapter from 'enzyme-adapter-react-16'; Enzyme.configure({ adapter: new EnzymeAdapter() }); const mountSetup = (props = {}) => { return mount(<Component {...props} />); }; const defaultProps = { isShowing: false, setShow: () => {}, }; describe('Component works as expected', () => { test('Component toggles ', () => { const wrapper = mountSetup(defaultProps); // expect(wrapper.prop('setShow')).toBeTruthy(); wrapper.find('button').simulate('click'); expect(wrapper.find('h1').text()).toBe("Showing") wrapper.unmount(); }); });