with event
- <ReactElement> with event <string> <assertion?>
- <ReactElement> with event <string> <object> <assertion?>
with event
.... [on
]
with event
can trigger events in both the shallow and full renderer. For the normal full renderer,
TestUtils.Simulate
is used to simulate the event. For the shallow renderer, it is expected that
there is a prop with the name on[EventName]
, where the first letter of the event is capitalised.
e.g. with a button that counts it's own clicks
This works with the component directly, as a shallow renderer is automatically created.
Also note that due to unexpected's clever string handling, you can concatenated the with event
and the
event name.
Given the following todo list:
If you want to trigger an event on a specific component, (i.e. not the top level component), use on
after the event.
To pass arguments to the event, simply include the event object after the event name
This will call the function passed in the onMouseDown
prop of the <TodoItem>
.
You can take the renderer after the event has been triggered by using the promise returned
from expect
. This is often used to test that spy or mock callbacks have been called (using for instance sinon.js).
eventTarget
You can add an eventTarget
prop to the expected to trigger the event on a child component.
e.g.