File tree 2 files changed +27
-2
lines changed
2 files changed +27
-2
lines changed Original file line number Diff line number Diff line change @@ -79,9 +79,12 @@ private function handleRoutes(ServerRequestInterface $request): ResponseInterfac
79
79
$ newRouter = new Router (
80
80
$ route ,
81
81
$ this ->container ,
82
- $ this ->handle (...),
83
82
);
84
- return $ newRouter ->handle ($ request );
83
+ try {
84
+ return $ newRouter ->handle ($ request );
85
+ } catch (EmptyRouteStack ) {
86
+ continue ;
87
+ }
85
88
}
86
89
87
90
$ matchedParams = $ route ->match ($ request );
Original file line number Diff line number Diff line change @@ -119,4 +119,26 @@ public static function providerInvalidMiddlewares(): array
119
119
],
120
120
];
121
121
}
122
+
123
+ public function testRouteGroupWithMiddlewareDoesNotAffectTheNextRoutes (): void
124
+ {
125
+ $ routeGroup = new RouteGroup ([
126
+ new RouteGroup (
127
+ routes: [
128
+ Route::get (path: '/no ' , callback: static fn (): ResponseInterface => self ::response ('NO ' )),
129
+ ],
130
+ middlewares: [
131
+ fn ($ request , $ handler ) => self ::response (
132
+ strrev ((string )$ handler ->handle ($ request )->getBody ())
133
+ )
134
+ ],
135
+ ),
136
+ Route::get (path: '/ ' , callback: static fn (): ResponseInterface => self ::response ('TEST ' )),
137
+ ]);
138
+ $ request = self ::serverRequest ('GET ' , '/ ' );
139
+
140
+ $ response = $ this ->router ($ routeGroup )->handle ($ request );
141
+
142
+ self ::assertEquals ('TEST ' , (string )$ response ->getBody ());
143
+ }
122
144
}
You can’t perform that action at this time.
0 commit comments