Improve toHaveBeenCalledExactlyOnceWith messages #675
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
Improve the output of
toHaveBeenCalledExactlyOnceWith
to display a diff when the arguments do not match.Notably, I use
printDiffOrStringify
to improve readability with many arguments or with complex arguments. Jest's coreexpect
uses a diff matcher as well, although it has added complexity to display the diff without indentation. I think the solution I've implemented here is a happy middle ground.In the following example, it's hard to tell what the incorrect call was, because the second argument is not printed, and, if it was complex, it would be hard to read.
Before:
After:
Why
Fixes #645, fixes #672, and fixes #690, and the output more closely resembles the output of an argument mismatch when using jest's
toHaveBeenCalledWith
.Notes
Housekeeping