From 65f6bc991c2ce9ccde9ba9ce39dcb0833976e7c8 Mon Sep 17 00:00:00 2001 From: Kristian Hempel Date: Fri, 25 Jul 2025 21:34:44 +0200 Subject: [PATCH 1/2] chore: add exception message for invalid path value --- src/Domain/Value/Link.php | 2 +- tests/Unit/Domain/Value/LinkTest.php | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Domain/Value/Link.php b/src/Domain/Value/Link.php index a9943bf..8af5945 100644 --- a/src/Domain/Value/Link.php +++ b/src/Domain/Value/Link.php @@ -72,7 +72,7 @@ public function __construct(array $values) Assert::keyExists($values, 'path'); if (null !== $values['path']) { - $path = TrimmedNonEmptyString::fromString($values['path'])->toString(); + $path = TrimmedNonEmptyString::fromString($values['path'], 'The value of key "path" is invalid.')->toString(); } $this->path = $path ?? null; diff --git a/tests/Unit/Domain/Value/LinkTest.php b/tests/Unit/Domain/Value/LinkTest.php index 7005371..e5b8c8e 100644 --- a/tests/Unit/Domain/Value/LinkTest.php +++ b/tests/Unit/Domain/Value/LinkTest.php @@ -14,6 +14,8 @@ namespace Storyblok\Api\Tests\Unit\Domain\Value; +use Ergebnis\DataProvider\StringProvider; +use PHPUnit\Framework\Attributes\DataProviderExternal; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; use Storyblok\Api\Domain\Value\Link; @@ -153,6 +155,19 @@ public function pathKeyMustExist(): void new Link($values); } + #[DataProviderExternal(StringProvider::class, 'blank')] + #[DataProviderExternal(StringProvider::class, 'empty')] + #[Test] + public function pathMustBeValidString(string $value): void + { + $values = self::faker()->linkResponse(['path' => $value]); + + self::expectExceptionMessage('The value of key "path" is invalid.'); + self::expectException(\InvalidArgumentException::class); + + new Link($values); + } + #[Test] public function isFolder(): void { From 5ea84d25b6a32b91fb4d4cce76d13798d2b4eaad Mon Sep 17 00:00:00 2001 From: Kristian Hempel Date: Tue, 29 Jul 2025 16:54:00 +0200 Subject: [PATCH 2/2] fix --- src/Domain/Value/Link.php | 2 +- tests/Unit/Domain/Value/LinkTest.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Domain/Value/Link.php b/src/Domain/Value/Link.php index 8af5945..fe8f853 100644 --- a/src/Domain/Value/Link.php +++ b/src/Domain/Value/Link.php @@ -71,7 +71,7 @@ public function __construct(array $values) Assert::keyExists($values, 'path'); - if (null !== $values['path']) { + if (null !== $values['path'] && '' !== $values['path']) { $path = TrimmedNonEmptyString::fromString($values['path'], 'The value of key "path" is invalid.')->toString(); } diff --git a/tests/Unit/Domain/Value/LinkTest.php b/tests/Unit/Domain/Value/LinkTest.php index e5b8c8e..280eb61 100644 --- a/tests/Unit/Domain/Value/LinkTest.php +++ b/tests/Unit/Domain/Value/LinkTest.php @@ -156,7 +156,6 @@ public function pathKeyMustExist(): void } #[DataProviderExternal(StringProvider::class, 'blank')] - #[DataProviderExternal(StringProvider::class, 'empty')] #[Test] public function pathMustBeValidString(string $value): void {