mirror of
https://github.com/flarum/core.git
synced 2025-08-03 06:57:54 +02:00
Added more tests
This commit is contained in:
@@ -31,8 +31,17 @@ class IlluminateValidationExceptionHandler implements ExceptionHandlerInterface
|
|||||||
public function handle(Exception $e)
|
public function handle(Exception $e)
|
||||||
{
|
{
|
||||||
$status = 422;
|
$status = 422;
|
||||||
|
$errors = $this->formatErrors($e->errors()->toArray());
|
||||||
|
|
||||||
$errors = $e->errors()->toArray();
|
return new ResponseBag($status, $errors);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $errors
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function formatErrors(array $errors)
|
||||||
|
{
|
||||||
$errors = array_map(function ($field, $messages) {
|
$errors = array_map(function ($field, $messages) {
|
||||||
return [
|
return [
|
||||||
'detail' => implode("\n", $messages),
|
'detail' => implode("\n", $messages),
|
||||||
@@ -40,6 +49,6 @@ class IlluminateValidationExceptionHandler implements ExceptionHandlerInterface
|
|||||||
];
|
];
|
||||||
}, array_keys($errors), $errors);
|
}, array_keys($errors), $errors);
|
||||||
|
|
||||||
return new ResponseBag($status, $errors);
|
return $errors;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace tests\Flarum\Api\Handler;
|
namespace Tests\Flarum\Api\Handler;
|
||||||
|
|
||||||
use Flarum\Api\Handler\FloodingExceptionHandler;
|
use Flarum\Api\Handler\FloodingExceptionHandler;
|
||||||
use Flarum\Core\Exception\FloodingException;
|
use Flarum\Core\Exception\FloodingException;
|
||||||
|
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
namespace Tests\Flarum\Api\Handler;
|
||||||
|
|
||||||
|
use Flarum\Api\Handler\ValidationExceptionHandler;
|
||||||
|
use Flarum\Core\Exception\ValidationException;
|
||||||
|
use Tests\Test\TestCase;
|
||||||
|
|
||||||
|
class IlluminateValidationExceptionHandlerTest extends TestCase
|
||||||
|
{
|
||||||
|
private $handler;
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->handler = new ValidationExceptionHandler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_it_handles_familiar_exceptions()
|
||||||
|
{
|
||||||
|
$validException = new ValidationException(['messages']);
|
||||||
|
|
||||||
|
$this->assertFalse($this->handler->manages(new \Exception));
|
||||||
|
$this->assertTrue($this->handler->manages($validException));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_it_creates_the_desired_output()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete();
|
||||||
|
|
||||||
|
$exception = new ValidationException(['field' => ['Some error']]);
|
||||||
|
|
||||||
|
$response = $this->handler->handle($exception);
|
||||||
|
|
||||||
|
$this->assertEquals(422, $response->getStatus());
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user