@@ -66,10 +66,13 @@ public function assertActionUsesMiddleware($controller, $method, $middleware = n
66
66
PHPUnitAssert::assertNotNull ($ route , 'Unable to find route for controller action ( ' . $ controller . '@ ' . $ method . ') ' );
67
67
}
68
68
69
+ $ excludedMiddleware = $ route ->action ['excluded_middleware ' ] ?? [];
70
+ $ usedMiddlewares = array_diff ($ route ->gatherMiddleware (), $ excludedMiddleware );
71
+
69
72
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 ) . ') ' );
71
74
} 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 . ') ' );
73
76
}
74
77
}
75
78
@@ -78,7 +81,9 @@ public function assertRouteUsesMiddleware(string $routeName, array $middlewares,
78
81
$ router = resolve (\Illuminate \Routing \Router::class);
79
82
80
83
$ route = $ router ->getRoutes ()->getByName ($ routeName );
81
- $ usedMiddlewares = $ route ->gatherMiddleware ();
84
+
85
+ $ excludedMiddleware = $ route ->action ['excluded_middleware ' ] ?? [];
86
+ $ usedMiddlewares = array_diff ($ route ->gatherMiddleware (), $ excludedMiddleware );
82
87
83
88
PHPUnitAssert::assertNotNull ($ route , "Unable to find route for name ` $ routeName` " );
84
89
0 commit comments