diff options
| author | Sam Light <sam@lightscale.co.uk> | 2026-06-10 19:00:33 +0100 |
|---|---|---|
| committer | Sam Light <sam@lightscale.co.uk> | 2026-06-10 19:00:33 +0100 |
| commit | cfc25964f93e2bdcfec6ac4f3d52c658d66f4d2b (patch) | |
| tree | a64eef402b9c999c6851bd8cf97002c39e5c4bde | |
| parent | 65bb048bf3c3d4226b8d7580592b62351e07a7e6 (diff) | |
testing adding middleware to routes and groups
| -rw-r--r-- | tests/Unit/GroupDefinitionTest.php | 5 | ||||
| -rw-r--r-- | tests/Unit/RouteDefinitionTest.php | 14 | ||||
| -rw-r--r-- | tests/Unit/RouterTest.php | 7 |
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); |
