Open flohw opened 1 year ago
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 ?
I feel like the current behaviour is expected...?
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.
First, does the above code work for you scenario?
It does.
This is about the error message which may be unclear.
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. :exploding_head:
Thank you!