J'utilise Jest et Enzyme pour tester un composant de case à cocher React.
Voici mon test:
it('triggers checkbox onChange event', () => {
const configs = {
default: true,
label: 'My Label',
element: 'myElement',
}
const checkbox = shallow(
<CheckBox
configs={configs}
/>
)
checkbox.find('input').simulate('click')
})
J'obtiens cependant cette erreur lors de l'exécution du test:
TypeError: Cannot read property 'target' of undefined
Ceci est l'entrée pour mon composant:
<div className="toggle-btn sm">
<input
id={this.props.configs.element}
className="toggle-input round"
type="checkbox"
defaultChecked={ this.props.defaultChecked }
onClick={ e => this.onChange(e.target) }
>
</input>
</div>
Je pense que j'ai besoin de passer un événement comme deuxième objet à simulate
mais je ne suis pas sûr comment faire ça.
Merci
simulate
la fonction prend d'autres arguments qui seront passés au gestionnaire d'événements. Vous pouvez vous moquer de votre événement. Par exemple.:
const mockedEvent = { target: {} }
checkbox.find('input').simulate('click', mockedEvent)