summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/RouteDefinition.php10
-rw-r--r--tests/Unit/RouteDefinitionTest.php12
2 files changed, 20 insertions, 2 deletions
diff --git a/src/RouteDefinition.php b/src/RouteDefinition.php
index ed6c721..fb10380 100644
--- a/src/RouteDefinition.php
+++ b/src/RouteDefinition.php
@@ -9,5 +9,13 @@ class RouteDefinition
public function __construct(
private Router $router,
private Route $route,
- ) {}
+ ) {
+ }
+
+ public function name(string $value): static
+ {
+ $this->router->addNamedRoute($value, $this->route);
+
+ return $this;
+ }
}
diff --git a/tests/Unit/RouteDefinitionTest.php b/tests/Unit/RouteDefinitionTest.php
index 8ac0e45..f605293 100644
--- a/tests/Unit/RouteDefinitionTest.php
+++ b/tests/Unit/RouteDefinitionTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
use Lightscale\Router\Enums\HttpMethod;
use Lightscale\Router\Route;
use Lightscale\Router\RouteDefinition;
@@ -8,6 +10,14 @@ use Lightscale\Router\Router;
it('initalizes')
->expect(fn () => new RouteDefinition(
new Router(),
- new Route(HttpMethod::Get, fn() => null),
+ new Route(HttpMethod::Get, fn () => null),
))
->toBeInstanceOf(RouteDefinition::class);
+
+it('adds route to named routes', function () {
+ $router = new Router();
+ $route = new Route(HttpMethod::Get, fn () => null);
+ $definition = new RouteDefinition($router, $route);
+ expect($definition->name('testing'))->toBe($definition);
+ expect($router->getNamedRoute('testing'))->toBe($route);
+});