-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do not highlight passing asymmetric matchers in diffs #6184
Comments
Oh this is great, so basically when doing the diff, also compare the asymmetric matchers What do you think @pedrottimark? |
Yes, serialize-then-diff is barrier to solve some obvious problems. See also #7027 This has been in my slow cooker for a while with limited progress. Happy to hear your thoughts. |
This one sounds like fun. I can give it a try if nobody is actively working on it. |
@grosto Super! As a first step, so we can discuss what a solution looks like independent of how to achieve it, can you and anyone else subscribed to this issue either:
Tomorrow I will share some thoughts about what and how for you to critique. |
Well the minimal one is expect({
a: 'a',
b: 'b',
}).toEqual({
a: 'x',
b: expect.any(String),
}) |
@pedrottimark Sounds great! I am a bit busy for the next 2-3 days. As soon as I find the time, I will make a PR with simple tests which demonstrate the current diff issues. |
This comment has been minimized.
This comment has been minimized.
I can offer another use case in support of the output being more specific. expect(myFnSpy).toHaveBeenLastCalledWith(
expect.objectContaining({
env: 'test',
req: expect.objectContaining({
method: 'POST',
headers: expect.objectContaining({
'x-amzn-trace-id': expect.any(String),
'x-forwarded-proto': 'https',
'x-forwarded-for': 'some_client_ip'
})
})
})
); |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
🚀 Feature Proposal
This is another idea related to more helpful failure diffs in the same vein as #6170.
The diff of a failing expectation currently highlights nested usages of
expect.objectContaining
andexpect.anything
because they are not "equal" to whatever was received. I propose only printing out a diff if the matcher fails.Motivation
Both this issue and #6170 are the product of a pairing session where we had a hard time tracking down what the actual error was when an existing test started failing. I think that test could have been broken up into several more specific tests or used chained expectations, but it would have been nice to pinpoint the failing property right away.
Example
Here's an example of a failing test that uses a combination of matchers:
https://repl.it/repls/DifficultSvelteMonitors
The only property that doesn't match is "rank" due to a type mismatch, but it's hard to see that when scanning the failure diff because the nested matchers are displaying.
The desired approach would look like this:
Pitch
Why does this feature belong in the Jest core platform?
This is a change to the default reporter that will help identify the cause of failures faster.
The text was updated successfully, but these errors were encountered: