diff --git a/src/Concerns/DealsWithRouteContexts.php b/src/Concerns/DealsWithRouteContexts.php index f9df834d..9a9b0871 100644 --- a/src/Concerns/DealsWithRouteContexts.php +++ b/src/Concerns/DealsWithRouteContexts.php @@ -110,7 +110,7 @@ trait DealsWithRouteContexts foreach ($middleware as $inner) { if (! $inner instanceof Closure && isset($middlewareGroups[$inner])) { - $innerMiddleware = Arr::wrap($middlewareGroups[$inner]); + $innerMiddleware = array_merge($innerMiddleware, Arr::wrap($middlewareGroups[$inner])); } } diff --git a/tests/RouteMiddlewareTest.php b/tests/RouteMiddlewareTest.php index ab0a46be..c5c84a04 100644 --- a/tests/RouteMiddlewareTest.php +++ b/tests/RouteMiddlewareTest.php @@ -69,6 +69,18 @@ test('tenancy detects presence of route middleware correctly', function (string InitializeTenancyByDomainOrSubdomain::class, ]); +test('getRouteMiddleware properly unpacks all mw groups on a route', function() { + $route = Route::get('/foo', fn () => true)->middleware(['foo', 'bar']); + + Route::middlewareGroup('foo', [PreventAccessFromUnwantedDomains::class]); + Route::middlewareGroup('bar', [InitializeTenancyByDomain::class]); + + expect(tenancy()->getRouteMiddleware($route))->toContain( + PreventAccessFromUnwantedDomains::class, + InitializeTenancyByDomain::class + ); +}); + test('domain identification middleware is configurable', function() { $route = Route::get('/welcome-route', fn () => 'welcome')->middleware([InitializeTenancyByDomain::class]);