From 7ff9dbb9af15e8695baf05ddafa3d48375e44160 Mon Sep 17 00:00:00 2001 From: Sam Feyaerts Date: Wed, 13 Mar 2024 15:01:02 +0100 Subject: [PATCH 1/3] fix: support root routes in route groups --- src/MultilingualRegistrar.php | 2 +- tests/RouteTest.php | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/MultilingualRegistrar.php b/src/MultilingualRegistrar.php index cdb0d00..a1901de 100644 --- a/src/MultilingualRegistrar.php +++ b/src/MultilingualRegistrar.php @@ -269,7 +269,7 @@ protected function generateNameForLocaleFromOptions(string $locale, string $key, */ protected function generatePrefixForLocale(string $key, string $locale): ?string { - if ($key === '/' || $this->shouldNotPrefixLocale($locale)) { + if (($key === '/' && !$this->router->getLastGroupPrefix()) || $this->shouldNotPrefixLocale($locale)) { return null; } diff --git a/tests/RouteTest.php b/tests/RouteTest.php index 7b44ede..3475e43 100644 --- a/tests/RouteTest.php +++ b/tests/RouteTest.php @@ -247,6 +247,23 @@ public function a_route_with_prefix_stack_can_be_registered(): void ); } + /** @test **/ + public function a_root_route_with_prefix_stack_can_be_registered(): void + { + $this->registerTestTranslations(); + + Route::prefix('prefix')->group(static function () { + Route::multilingual('/')->name('test'); + }); + + $this->assertEquals(url('prefix'), localized_route('test')); + + $this->assertEquals( + url('fr/prefixe'), + localized_route('test', [], 'fr') + ); + } + /** @test **/ public function a_view_route_can_be_registered(): void { @@ -569,10 +586,12 @@ protected function registerTestTranslations(): void $this->registerTranslations([ 'en' => [ 'routes.prefix/test' => 'prefix/test', + 'routes.prefix' => 'prefix', 'routes.test' => 'test', ], 'fr' => [ 'routes.prefix/test' => 'prefixe/teste', + 'routes.prefix' => 'prefixe', 'routes.test' => 'teste', ], ]); From b8b63e34f6d15443349b0686c7d1d6bf9dc5615a Mon Sep 17 00:00:00 2001 From: Sam Feyaerts Date: Wed, 13 Mar 2024 15:10:35 +0100 Subject: [PATCH 2/3] style: improve code style in `MultilingualRegistrar` --- src/MultilingualRegistrar.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MultilingualRegistrar.php b/src/MultilingualRegistrar.php index a1901de..fff1e6e 100644 --- a/src/MultilingualRegistrar.php +++ b/src/MultilingualRegistrar.php @@ -269,7 +269,7 @@ protected function generateNameForLocaleFromOptions(string $locale, string $key, */ protected function generatePrefixForLocale(string $key, string $locale): ?string { - if (($key === '/' && !$this->router->getLastGroupPrefix()) || $this->shouldNotPrefixLocale($locale)) { + if (($key === '/' && ! $this->router->getLastGroupPrefix()) || $this->shouldNotPrefixLocale($locale)) { return null; } From 06239cf96183d13cf03ec10ececb1857a41633c2 Mon Sep 17 00:00:00 2001 From: Sam Feyaerts Date: Wed, 13 Mar 2024 15:14:14 +0100 Subject: [PATCH 3/3] test: remove verbose phpunit option from github workflow --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 88b76d9..e1ddd27 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -36,4 +36,4 @@ jobs: command: composer update --${{ matrix.stability }} --prefer-dist --no-interaction --no-progress - name: Execute tests - run: vendor/bin/phpunit --colors --verbose + run: vendor/bin/phpunit --colors