Building matchers for component mocks
In this section, we’ll introduce a new matcher, toBeRenderedWithProps
, that simplifies the expectations for our mock spy object.
Recall that our expectations look like this:
expect(AppointmentsDayView).toBeCalledWith( { appointments }, expect.anything() );
Imagine if you were working on a team that had tests like this. Would a new joiner understand what that second argument, expect.anything()
, is doing? Will you understand what this is doing if you don’t go away for a while and forget how component mocks work?
Let’s wrap that into a matcher that allows us to hide the second property.
We need two matchers to cover the common use cases. The first, toBeRenderedWithProps
, is the one we’ll work through in this chapter. The second, toBeFirstRenderedWithProps
, is left as an exercise for you.
The matcher, toBeRenderedWithProps
, will pass if the component is currently rendered with the...