Skip to content

Commit 1cd911b

Browse files
committed
wip
1 parent e012b0c commit 1cd911b

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace Tests\Tempest\Integration\Route\Fixtures;
4+
5+
use Tempest\Core\Priority;
6+
use Tempest\Http\Request;
7+
use Tempest\Http\Response;
8+
use Tempest\Router\HttpMiddleware;
9+
use Tempest\Router\HttpMiddlewareCallable;
10+
11+
#[Priority(Priority::EXCEPTION_HANDLING)]
12+
final class CustomNotFoundMiddleware implements HttpMiddleware
13+
{
14+
public function __invoke(Request $request, HttpMiddlewareCallable $next): Response
15+
{
16+
$response = $next($request);
17+
18+
$response->addHeader('x-not-found', 'indeed');
19+
20+
return $response;
21+
}
22+
}

tests/Integration/Route/NotFoundTest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,25 @@
22

33
namespace Tests\Tempest\Integration\Route;
44

5+
use Tempest\Router\RouteConfig;
56
use Tests\Tempest\Integration\FrameworkIntegrationTestCase;
7+
use Tests\Tempest\Integration\Route\Fixtures\CustomNotFoundMiddleware;
68

9+
/**
10+
* @property \Tempest\Framework\Testing\Http\HttpRouterTester $http
11+
*/
712
final class NotFoundTest extends FrameworkIntegrationTestCase
813
{
914
public function test_unmatched_route_returns_not_found(): void
1015
{
1116
$this->http->get('unknown-route')->assertNotFound();
1217
}
18+
19+
public function test_custom_not_found_middleware(): void
20+
{
21+
$routeConfig = $this->container->get(RouteConfig::class);
22+
$routeConfig->middleware->add(CustomNotFoundMiddleware::class);
23+
24+
$this->http->get('unknown-route')->assertHasHeader('x-not-found');
25+
}
1326
}

0 commit comments

Comments
 (0)