From d1f12f594d8aeb1831b1f9e830140d399c827224 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Tue, 1 Jul 2025 17:23:13 +0200 Subject: [PATCH] Instead of assigning $innerMiddleware during group MW unpacking, merge it (#1371) --- src/Concerns/DealsWithRouteContexts.php | 2 +- tests/RouteMiddlewareTest.php | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) 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]);