summaryrefslogtreecommitdiff
path: root/tests/Unit
diff options
context:
space:
mode:
authorSam Light <sam@lightscale.co.uk>2026-06-10 19:00:33 +0100
committerSam Light <sam@lightscale.co.uk>2026-06-10 19:00:33 +0100
commitcfc25964f93e2bdcfec6ac4f3d52c658d66f4d2b (patch)
treea64eef402b9c999c6851bd8cf97002c39e5c4bde /tests/Unit
parent65bb048bf3c3d4226b8d7580592b62351e07a7e6 (diff)
testing adding middleware to routes and groups
Diffstat (limited to 'tests/Unit')
-rw-r--r--tests/Unit/GroupDefinitionTest.php5
-rw-r--r--tests/Unit/RouteDefinitionTest.php14
-rw-r--r--tests/Unit/RouterTest.php7
3 files changed, 22 insertions, 4 deletions
diff --git a/tests/Unit/GroupDefinitionTest.php b/tests/Unit/GroupDefinitionTest.php
index 3ea8275..51ac76f 100644
--- a/tests/Unit/GroupDefinitionTest.php
+++ b/tests/Unit/GroupDefinitionTest.php
@@ -8,6 +8,7 @@ use Lightscale\Router\GroupDefinition;
use Lightscale\Router\PathSegmentMatch;
use Lightscale\Router\RouteDefinition;
use Lightscale\Router\Router;
+use Lightscale\Router\Test\Utils\TestMiddleware;
$make = fn () => new GroupDefinition(new Group(new Router(), null));
@@ -42,4 +43,6 @@ it('returns RouteDefinition when making :dataset route')
)
->toBeInstanceOf(RouteDefinition::class);
-it('can create a group with middleware')->todo();
+it('can create a group with middleware')
+ ->expect($make()->middleware(new TestMiddleware()))
+ ->toBeInstanceOf(Group::class);
diff --git a/tests/Unit/RouteDefinitionTest.php b/tests/Unit/RouteDefinitionTest.php
index 0e02bac..6e3900e 100644
--- a/tests/Unit/RouteDefinitionTest.php
+++ b/tests/Unit/RouteDefinitionTest.php
@@ -7,6 +7,7 @@ use Lightscale\Router\Group;
use Lightscale\Router\Route;
use Lightscale\Router\RouteDefinition;
use Lightscale\Router\Router;
+use Lightscale\Router\Test\Utils\TestMiddleware;
it('initalizes')
->expect(fn () => new RouteDefinition(
@@ -42,4 +43,15 @@ it('gets the route', function () {
expect($def->getRoute())->toBe($route);
});
-it('adds middleware to route')->todo();
+it('adds middleware to route', function () {
+ $def = new RouteDefinition(
+ new Router(),
+ $route = new Route(HttpMethod::Get, fn () => null),
+ );
+
+ $mw = new TestMiddleware();
+ expect($def->middleware($mw))->toBe($def);
+ expect($route->getMiddleware())
+ ->toHaveCount(1)
+ ->{0}->toBe($mw);
+});
diff --git a/tests/Unit/RouterTest.php b/tests/Unit/RouterTest.php
index 08664c9..a8769c4 100644
--- a/tests/Unit/RouterTest.php
+++ b/tests/Unit/RouterTest.php
@@ -7,12 +7,14 @@ use Lightscale\Router\Contracts\Strategy;
use Lightscale\Router\Enums\HttpMethod;
use Lightscale\Router\Enums\PathSegmentType;
use Lightscale\Router\Exceptions\MissingParameterException;
+use Lightscale\Router\Group;
use Lightscale\Router\PathSegment;
use Lightscale\Router\Route;
use Lightscale\Router\RouteCall;
use Lightscale\Router\RouteDefinition;
use Lightscale\Router\RouteMatch;
use Lightscale\Router\Router;
+use Lightscale\Router\Test\Utils\TestMiddleware;
use Nyholm\Psr7\Factory\Psr17Factory;
it('initializes')
@@ -331,5 +333,6 @@ it('builds routes in groups', function () {
expect($router->getNamedRoute('test4'))->toBe($r4);
});
-it('can create a group with middleware', function () {
-});
+it('can create a group with middleware')
+ ->expect((new Router())->middleware(new TestMiddleware()))
+ ->toBeInstanceOf(Group::class);