diff --git a/src/Tempest/Framework/Testing/Http/HttpRouterTester.php b/src/Tempest/Framework/Testing/Http/HttpRouterTester.php index 477d19b19..148ea9822 100644 --- a/src/Tempest/Framework/Testing/Http/HttpRouterTester.php +++ b/src/Tempest/Framework/Testing/Http/HttpRouterTester.php @@ -14,6 +14,7 @@ use Tempest\Http\Mappers\RequestToPsrRequestMapper; use Tempest\Http\Method; use Tempest\Http\Request; +use Tempest\Http\Response; use Tempest\Reflection\MethodReflector; use Tempest\Router\Exceptions\HttpExceptionHandler; use Tempest\Router\Route; @@ -239,19 +240,27 @@ public function sendRequest(Request $request): TestResponseHelper try { $response = $router->dispatch(map($request)->with(RequestToPsrRequestMapper::class)->do()); } catch (Throwable $throwable) { - return new TestResponseHelper( + return $this->createTestResponseHelper( response: $this->container->get(HttpExceptionHandler::class)->renderResponse($request, $throwable), request: $request, - container: $this->container, throwable: $throwable, ); } } - return new TestResponseHelper( + return $this->createTestResponseHelper( response: $response, request: $request, - container: $this->container, + ); + } + + private function createTestResponseHelper(Response $response, Request $request, ?Throwable $throwable = null): TestResponseHelper + { + return $this->container->get( + TestResponseHelper::class, + response: $response, + request: $request, + throwable: $throwable, ); } diff --git a/src/Tempest/Framework/Testing/Http/TestResponseHelper.php b/src/Tempest/Framework/Testing/Http/TestResponseHelper.php index b3e244d53..8274c8468 100644 --- a/src/Tempest/Framework/Testing/Http/TestResponseHelper.php +++ b/src/Tempest/Framework/Testing/Http/TestResponseHelper.php @@ -26,7 +26,7 @@ use function Tempest\Support\arr; -final class TestResponseHelper +class TestResponseHelper { /** * @param Response $response The original response from the controller.