diff --git a/framework/core/tests/Flarum/Api/Handler/IlluminateValidationExceptionHandlerTest.php b/framework/core/tests/Flarum/Api/Handler/IlluminateValidationExceptionHandlerTest.php index e33c5bdd9..6200dc6ec 100644 --- a/framework/core/tests/Flarum/Api/Handler/IlluminateValidationExceptionHandlerTest.php +++ b/framework/core/tests/Flarum/Api/Handler/IlluminateValidationExceptionHandlerTest.php @@ -11,8 +11,10 @@ namespace Tests\Flarum\Api\Handler; use Exception; -use Flarum\Api\Handler\ValidationExceptionHandler; -use Flarum\Core\Exception\ValidationException; +use Flarum\Api\Handler\IlluminateValidationExceptionHandler; +use Illuminate\Contracts\Validation\ValidationException; +use Illuminate\Validation\Factory; +use Symfony\Component\Translation\Translator; use Tests\Test\TestCase; class IlluminateValidationExceptionHandlerTest extends TestCase @@ -21,12 +23,12 @@ class IlluminateValidationExceptionHandlerTest extends TestCase public function init() { - $this->handler = new ValidationExceptionHandler; + $this->handler = new IlluminateValidationExceptionHandler; } public function test_it_handles_familiar_exceptions() { - $validException = new ValidationException(['messages']); + $validException = new ValidationException($this->makeValidator()); $this->assertFalse($this->handler->manages(new Exception)); $this->assertTrue($this->handler->manages($validException)); @@ -34,12 +36,26 @@ class IlluminateValidationExceptionHandlerTest extends TestCase public function test_it_creates_the_desired_output() { - $this->markTestIncomplete(); - - $exception = new ValidationException(['field' => ['Some error']]); + $exception = new ValidationException($this->makeValidator(['foo' => ''], ['foo' => 'required'])); $response = $this->handler->handle($exception); $this->assertEquals(422, $response->getStatus()); + $this->assertEquals([ + [ + 'status' => '422', + 'code' => 'validation_error', + 'detail' => 'validation.required', + 'source' => ['pointer' => '/data/attributes/foo'] + ] + ], $response->getErrors()); + } + + private function makeValidator($data = [], $rules = []) + { + $translator = new Translator('en'); + $factory = new Factory($translator); + + return $factory->make($data, $rules); } }