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...