Skip to content

Commit

Permalink
Allow nested errors in json assertion (#33989)
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesfairhurst committed Aug 24, 2020
1 parent 21520ee commit 7161c83
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/Illuminate/Testing/TestResponse.php
Expand Up @@ -729,7 +729,7 @@ public function assertJsonValidationErrors($errors, $responseKey = 'errors')

PHPUnit::assertNotEmpty($errors, 'No validation errors were provided.');

$jsonErrors = $this->json()[$responseKey] ?? [];
$jsonErrors = Arr::get($this->json(), $responseKey) ?? [];

$errorMessage = $jsonErrors
? 'Response has the following JSON validation errors:'.
Expand Down
14 changes: 14 additions & 0 deletions tests/Testing/TestResponseTest.php
Expand Up @@ -611,6 +611,20 @@ public function testAssertJsonValidationErrorsCustomErrorsName()
$testResponse->assertJsonValidationErrors('foo', 'data');
}

public function testAssertJsonValidationErrorsCustomNestedErrorsName()
{
$data = [
'status' => 'ok',
'data' => ['errors' => ['foo' => 'oops']],
];

$testResponse = TestResponse::fromBaseResponse(
(new Response)->setContent(json_encode($data))
);

$testResponse->assertJsonValidationErrors('foo', 'data.errors');
}

public function testAssertJsonValidationErrorsCanFail()
{
$this->expectException(AssertionFailedError::class);
Expand Down

0 comments on commit 7161c83

Please sign in to comment.