[8.x] Allow assertion of multiple JSON validation errors. #39568
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.
Allow multiple validation error messages to be expected when testing responses from JSON API.
The
TestResponse::assertJsonValidationErrors()
method already accepts a single message to be expected for any given request attribute. It seems intuitive that since the actual JSON response might contain an array of validation errors, if more than one rule is violated, that this method could expect multiple messages per attribute.Currently this assumes that each attribute will expect a single message and if an array is provided it will throw an exception for an array to string conversion when creating the error message.
The change allows for multiple messages to be expected and for the assertion to fail if any of the provided messages is not in the response.
All previous tests continue to pass and previous usages of this method still work so this should not break any existing code based on this method.