1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
<?php
declare(strict_types=1);
use Lightscale\Router\Enums\HttpMethod;
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(
new Router(),
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);
});
it('adds route to named routes in a group', function () {
$router = new Router();
$route = new Route(HttpMethod::Get, fn () => null);
(new RouteDefinition($router, $route))
->inGroup((new Group($router, null))->name('test.'))
->name('testing');
expect($router->getNamedRoute('test.testing'))->toBe($route);
});
it('gets the route', function () {
$def = new RouteDefinition(
new Router(),
$route = new Route(HttpMethod::Get, fn () => null),
);
expect($def->getRoute())->toBe($route);
});
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);
});
|