Tengo una función simple de disparo de gancho en la tecla:
useEffect(() => { const handleUp = (event: KeyboardEvent) => { const { key: releasedKey } = event if (key === releasedKey) { if (onKeyUp) { onKeyUp() } } } window.addEventListener('keyup', handleUp) return () => { window.removeEventListener('keyup', handleUp) } }, [key, onKeyUp]) }Quiero probarlo usando Enzyme:
import { shallow } from 'enzyme' import React from 'react' import useKeyUp from 'utils/hooks/useKeyUp' const TestComponent = ({key, callback}) => { useKeyUp(key, callback) return ( <div> test </div> ) } test('executes handler on Enter key up', () => { const callback = jest.fn() const testComponent = shallow( <TestComponent key={'Enter'} callback={callback} />) testComponent.simulate('keypress', { charCode: 13 }) expect(callback).toHaveBeenCalledTimes(1)Pero no se ha llamado a la función de devolución de llamada. Sé que el gancho está funcionando porque lo probé manualmente. ¿Cómo puedo simular correctamente el evento?