summaryrefslogtreecommitdiff
path: root/tests/Unit
diff options
context:
space:
mode:
authorSam Light <sam@lightscale.co.uk>2026-06-10 19:00:32 +0100
committerSam Light <sam@lightscale.co.uk>2026-06-10 19:00:32 +0100
commitd5803937abad436ee85be7478fa6f7cd0b3f3b21 (patch)
tree867858a0cc23422897dcea831fd51c3c06ccff35 /tests/Unit
parent82671dc3589094a2e68c8ca92ff33c078c7d033f (diff)
strategy runs middleware test
Diffstat (limited to 'tests/Unit')
-rw-r--r--tests/Unit/BasicStrategyTest.php36
1 files changed, 34 insertions, 2 deletions
diff --git a/tests/Unit/BasicStrategyTest.php b/tests/Unit/BasicStrategyTest.php
index 896858d..2c657d6 100644
--- a/tests/Unit/BasicStrategyTest.php
+++ b/tests/Unit/BasicStrategyTest.php
@@ -6,6 +6,7 @@ use Lightscale\Router\Exceptions\NotFoundException;
use Lightscale\Router\Route;
use Lightscale\Router\RouteCall;
use Lightscale\Router\Test\Utils\TestCallable;
+use Lightscale\Router\Test\Utils\TestMiddleware;
use Nyholm\Psr7\Factory\Psr17Factory;
it('initialises')
@@ -43,6 +44,37 @@ it('calls route', function () {
expect($res)->toBe($response);
});
-it('runs middleware', function() {
- $factory = new
+it('runs middleware', function () {
+ $factory = new Psr17Factory();
+ $request = $factory->createServerRequest('get', '/test');
+ $response = $factory->createResponse();
+
+ $middleware = [
+ $mw1 = new TestMiddleware(),
+ $mw2 = new TestMiddleware(),
+ ];
+
+ $handler = new TestCallable(fn () => $response);
+ $strategy = new BasicStrategy();
+ $result = $strategy->runMiddleware($request, $middleware, $handler);
+
+ expect($result)->toBe($response);
+ $mw1->assertCalled();
+ $mw2->assertCalled();
+ $handler->assertCalled();
+});
+
+it('runs handler with no middleware', function () {
+ $factory = new Psr17Factory();
+ $request = $factory->createServerRequest('get', '/test');
+ $response = $factory->createResponse();
+
+ $middleware = [];
+
+ $handler = new TestCallable(fn () => $response);
+ $strategy = new BasicStrategy();
+ $result = $strategy->runMiddleware($request, $middleware, $handler);
+
+ expect($result)->toBe($response);
+ $handler->assertCalled();
});