From 23b081205eb5c6a2a6c6e84ac098c46a171ed1ac Mon Sep 17 00:00:00 2001 From: Andrey Helldar Date: Sat, 31 Aug 2024 18:12:34 +0300 Subject: [PATCH 1/3] Added a new parameter for models filtering --- config/public.php | 11 +++++++++++ src/Data/Shared/ModelsData.php | 3 ++- src/Data/Shared/ModelsFilterData.php | 12 ++++++++++++ src/Services/Config.php | 9 +++++++++ tests/Unit/SharedWithEnvTest.php | 5 +++++ tests/Unit/SharedWithoutEnvTest.php | 4 ++++ 6 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/Data/Shared/ModelsFilterData.php diff --git a/config/public.php b/config/public.php index 7e9c7c2..d47b922 100644 --- a/config/public.php +++ b/config/public.php @@ -153,6 +153,17 @@ 'suffix' => 'Translation', + /* + * This option determines the need to filter localizations loaded + * in the relay when using eager loading. + * + * By default, true. + */ + + 'filter' => [ + 'enabled' => (bool) env('LOCALIZATION_FILTER_ENABLED', true), + ], + /* * This option specifies a folder to store helper files for the IDE. * diff --git a/src/Data/Shared/ModelsData.php b/src/Data/Shared/ModelsData.php index 246807e..b3c7a58 100644 --- a/src/Data/Shared/ModelsData.php +++ b/src/Data/Shared/ModelsData.php @@ -8,6 +8,7 @@ class ModelsData { public function __construct( public string $suffix, - public string $helpers + public string $helpers, + public ModelsFilterData $filter, ) {} } diff --git a/src/Data/Shared/ModelsFilterData.php b/src/Data/Shared/ModelsFilterData.php new file mode 100644 index 0000000..a44f3db --- /dev/null +++ b/src/Data/Shared/ModelsFilterData.php @@ -0,0 +1,12 @@ +value(Name::Shared, 'models.suffix', fallback: 'Translation'), helpers: $this->value(Name::Shared, 'models.helpers', fallback: Path::helpers()), + filter : $this->modelsFilter(), + ); + } + + protected function modelsFilter(): ModelsFilterData + { + return new ModelsFilterData( + enabled: $this->value(Name::Shared, 'models.filter.enabled'), ); } diff --git a/tests/Unit/SharedWithEnvTest.php b/tests/Unit/SharedWithEnvTest.php index 4ddc5bc..5ab1a8c 100644 --- a/tests/Unit/SharedWithEnvTest.php +++ b/tests/Unit/SharedWithEnvTest.php @@ -113,6 +113,7 @@ test('models', function () { config()->set(Name::Shared() . '.models.suffix', 'qwerty'); config()->set(Name::Shared() . '.models.helpers', realpath(dirname(__DIR__))); + config()->set(Name::Shared() . '.models.filter.enabled', false); expect(Config::shared()->models->suffix) ->toBeString() @@ -123,6 +124,10 @@ ->toBeString() ->toBe(realpath(dirname(__DIR__))) ->toBe(config('localization.models.helpers')); + + expect(Config::shared()->models->filter) + ->enabled->toBeFalse() + ->enabled->toBe(config('localization.models.filter.enabled')); }); test('translators: all', function () { diff --git a/tests/Unit/SharedWithoutEnvTest.php b/tests/Unit/SharedWithoutEnvTest.php index 83a16af..5372abf 100644 --- a/tests/Unit/SharedWithoutEnvTest.php +++ b/tests/Unit/SharedWithoutEnvTest.php @@ -111,6 +111,10 @@ ->toBeString() ->toBe(realpath(dirname(__DIR__))) ->toBe(config('localization.models.helpers')); + + expect(Config::shared()->models->filter) + ->enabled->toBeTrue() + ->enabled->toBe(config('localization.models.filter.enabled')); }); test('translators: all', function () { From 7ba3333ab9e6af6948d9774c55a2023a4909e30d Mon Sep 17 00:00:00 2001 From: Andrey Helldar Date: Sat, 31 Aug 2024 18:27:09 +0300 Subject: [PATCH 2/3] Fixed tests --- tests/Unit/SharedWithoutEnvTest.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tests/Unit/SharedWithoutEnvTest.php b/tests/Unit/SharedWithoutEnvTest.php index 5372abf..9c0abef 100644 --- a/tests/Unit/SharedWithoutEnvTest.php +++ b/tests/Unit/SharedWithoutEnvTest.php @@ -130,9 +130,7 @@ ->enabled->toBeFalse() ->priority->toBe(2) ->translator->toBe('\LaravelLang\Translator\Integrations\Deepl') - ->credentials->toBe([ - 'key' => null, - ]); + ->credentials->key->toBeEmpty(); expect(Config::shared()->translators->channels->all['yandex']) ->toBeInstanceOf(TranslatorData::class) @@ -140,8 +138,8 @@ ->priority->toBe(3) ->translator->toBe('\LaravelLang\Translator\Integrations\Yandex') ->credentials->toBe([ - 'key' => null, - 'folder' => null, + 'key' => '', + 'folder' => '' ]); }); From a0171099316e905c267e42f6ca10876ce236c229 Mon Sep 17 00:00:00 2001 From: Andrey Helldar Date: Sat, 31 Aug 2024 18:30:51 +0300 Subject: [PATCH 3/3] Fixed code-style --- tests/Unit/SharedWithoutEnvTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Unit/SharedWithoutEnvTest.php b/tests/Unit/SharedWithoutEnvTest.php index 9c0abef..1004a5b 100644 --- a/tests/Unit/SharedWithoutEnvTest.php +++ b/tests/Unit/SharedWithoutEnvTest.php @@ -138,8 +138,8 @@ ->priority->toBe(3) ->translator->toBe('\LaravelLang\Translator\Integrations\Yandex') ->credentials->toBe([ - 'key' => '', - 'folder' => '' + 'key' => '', + 'folder' => '', ]); });