diff --git a/resources/views/layout.blade.php b/resources/views/layout.blade.php index df1ba97..5ce94d9 100644 --- a/resources/views/layout.blade.php +++ b/resources/views/layout.blade.php @@ -10,6 +10,7 @@ 'scripts' => '', 'noscript' => '', 'menu' => '', + 'routes' => [], ]) @use('Step2dev\LazyMenu\Facades\Menu') routes = GenerateRoute::make()->generateRoutes(); + $this->routes = array_replace( + GenerateRoute::make()->generateRoutes(), + $routes ?? [], + ); } public function render(): \Closure|View diff --git a/tests/Feature/LayoutRoutesTest.php b/tests/Feature/LayoutRoutesTest.php new file mode 100644 index 0000000..ed18362 --- /dev/null +++ b/tests/Feature/LayoutRoutesTest.php @@ -0,0 +1,30 @@ + [ + 'url' => 'https://example.com/article', + 'target' => '_blank', + ], + ]); + + expect($layout->routes) + ->toHaveKeys(['index', 'create', 'show', 'edit', 'destroy']) + ->and($layout->routes['show']) + ->toBe([ + 'url' => 'https://example.com/article', + 'target' => '_blank', + ]); +}); + +it('declares routes as a blade prop so custom route attributes are not unset', function (): void { + $view = file_get_contents(__DIR__.'/../../resources/views/layout.blade.php'); + + expect($view) + ->toBeString() + ->toContain("'routes' => []"); +});