Cody kc
Cody kc

Reputation: 59

Enzyme testing a click with an event as parameter

'I am trying to test out this code using enzyme. I want to simulate a click but i get an error "Reference Error, Event is not defined". How do i get past that? Do i need to mock the function?'

const handleClick = (event : any) => {
  setAnchorEl(event.target);
  setOpen(true);
};
<IconButton onClick={() => handleClick(event)}>
  <DeleteIcon className={classes.threeDotsIcon}/>
</IconButton>

I tried simulating the click like this but it gives me an error, event is not defined.

'''

let wrapper = mount(<Provider store={store1}><MyComponent{...mockProps} /></Provider>);
let button = wrapper.findWhere(elem => elem.name() === 'IconButton');
button.simulate('click');'''

Upvotes: 0

Views: 452

Answers (1)

Lin Du
Lin Du

Reputation: 102287

You forgot to pass the event to handleClick event handler, onClick={(event) => handleClick(event)}. And you need to pass a simulated click event object like this button.simulate('click', { target: 'whatever' })

Upvotes: 1

Related Questions