Skip to content

Commit 2547c03

Browse files
authored
Take excluded_middleware into account for middleware assertions (#38)
1 parent 7d2fa95 commit 2547c03

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/Traits/AdditionalAssertions.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,13 @@ public function assertActionUsesMiddleware($controller, $method, $middleware = n
6666
PHPUnitAssert::assertNotNull($route, 'Unable to find route for controller action (' . $controller . '@' . $method . ')');
6767
}
6868

69+
$excludedMiddleware = $route->action['excluded_middleware'] ?? [];
70+
$usedMiddlewares = array_diff($route->gatherMiddleware(), $excludedMiddleware);
71+
6972
if (is_array($middleware)) {
70-
PHPUnitAssert::assertSame([], array_diff($middleware, $route->gatherMiddleware()), 'Controller action does not use middleware (' . implode(', ', $middleware) . ')');
73+
PHPUnitAssert::assertSame([], array_diff($middleware, $usedMiddlewares), 'Controller action does not use middleware (' . implode(', ', $middleware) . ')');
7174
} else {
72-
PHPUnitAssert::assertTrue(in_array($middleware, $route->gatherMiddleware()), 'Controller action does not use middleware (' . $middleware . ')');
75+
PHPUnitAssert::assertTrue(in_array($middleware, $usedMiddlewares), 'Controller action does not use middleware (' . $middleware . ')');
7376
}
7477
}
7578

@@ -78,7 +81,9 @@ public function assertRouteUsesMiddleware(string $routeName, array $middlewares,
7881
$router = resolve(\Illuminate\Routing\Router::class);
7982

8083
$route = $router->getRoutes()->getByName($routeName);
81-
$usedMiddlewares = $route->gatherMiddleware();
84+
85+
$excludedMiddleware = $route->action['excluded_middleware'] ?? [];
86+
$usedMiddlewares = array_diff($route->gatherMiddleware(), $excludedMiddleware);
8287

8388
PHPUnitAssert::assertNotNull($route, "Unable to find route for name `$routeName`");
8489

0 commit comments

Comments
 (0)