From 7c59e7878889b27857884d5c89e1a93d71eff634 Mon Sep 17 00:00:00 2001 From: Opblaasmaatje Date: Sun, 12 Jul 2026 23:00:40 +0100 Subject: [PATCH 1/2] feat(test): allow test response helper to be container injectable --- .../Framework/Testing/Http/HttpRouterTester.php | 17 +++++++++++++---- .../Testing/Http/TestResponseHelper.php | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Tempest/Framework/Testing/Http/HttpRouterTester.php b/src/Tempest/Framework/Testing/Http/HttpRouterTester.php index 2f11ad8f5..551c845c7 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; @@ -224,18 +225,26 @@ 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, + ); + } + + protected 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 977af753d..f3f67a767 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. From 7edef12e63bd47b0370fe5a5ead05ec1f09cc96b Mon Sep 17 00:00:00 2001 From: Opblaasmaatje Date: Sun, 12 Jul 2026 23:23:00 +0100 Subject: [PATCH 2/2] chore: change to private --- src/Tempest/Framework/Testing/Http/HttpRouterTester.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tempest/Framework/Testing/Http/HttpRouterTester.php b/src/Tempest/Framework/Testing/Http/HttpRouterTester.php index 8b6ae1706..148ea9822 100644 --- a/src/Tempest/Framework/Testing/Http/HttpRouterTester.php +++ b/src/Tempest/Framework/Testing/Http/HttpRouterTester.php @@ -254,7 +254,7 @@ public function sendRequest(Request $request): TestResponseHelper ); } - protected function createTestResponseHelper(Response $response, Request $request, ?Throwable $throwable = null): TestResponseHelper + private function createTestResponseHelper(Response $response, Request $request, ?Throwable $throwable = null): TestResponseHelper { return $this->container->get( TestResponseHelper::class,