-
-
Notifications
You must be signed in to change notification settings - Fork 19
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
Confusing assertJsonMatches
exception message when arrays are equal but not same
#127
Comments
I feel like the current behaviour is expected...? This should be possible using the array subset assertions but I think we need some DX improvements: Assert::that($browser->json()->decoded()['errors'])
->hasSubset(['first_name' => ['Invalid value']])
->hasSubset(['last_name' => ['Invalid value']])
; First, does the above code work for you scenario? |
Maybe we can use https://github.com/sebastianbergmann/diff ? |
It is! There is no problem with that. This is about the error message which may be unclear. The arrays were equals but not the same as the order matters: in both cases we have an associative array. Not the same due to different key order between expected and actual arrays. I'm not sure the message is improvable.
It does. |
Ah, I misunderstood. Indeed, that error message isn't great. Agreed. |
Hello,
I just faced an issue with
assertJsonMatches
method (note for search engine: which callsjson()->assertMatches
) can throw a weird exception message :(array:assoc)" to be the same as "(array:assoc)".
It turns out that's because I didn't ordered my array the same way the api endpoint tested returns its.
Value returned by the API:
Test:
The same issue applies for multidimensional arrays.
I hope this can be easily fixed. I have no idea how for now. 🤯
Thank you!
The text was updated successfully, but these errors were encountered: