Skip to content

Commit 6393206

Browse files
authored
fix: is_external_url is now optional (#48)
1 parent 4de196a commit 6393206

File tree

4 files changed

+28
-4
lines changed

4 files changed

+28
-4
lines changed

src/Domain/Type/Asset.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,13 @@ public function __construct(array $values)
5252
Assert::keyExists($values, 'filename');
5353
$this->url = TrimmedNonEmptyString::fromString($values['filename'])->toString();
5454

55-
Assert::keyExists($values, 'is_external_url');
56-
$this->isExternalUrl = true === $values['is_external_url'];
55+
$isExternalUrl = false;
56+
57+
if (\array_key_exists('is_external_url', $values)) {
58+
$isExternalUrl = true === $values['is_external_url'];
59+
}
60+
61+
$this->isExternalUrl = $isExternalUrl;
5762

5863
$alt = null;
5964

src/Domain/Type/Editable.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
use Webmozart\Assert\Assert;
2121
use function Safe\json_decode;
2222
use function Safe\json_encode;
23-
use function Symfony\Component\String\u;
2423

2524
/**
2625
* @experimental This class is experimental and may change in future versions.

src/Domain/Type/MultiLink.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
/**
2222
* @experimental This class is experimental and may change in future versions.
23-
*
23+
*
2424
* @author Silas Joisten <[email protected]>
2525
*/
2626
final readonly class MultiLink

tests/Unit/Domain/Type/AssetTest.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,4 +308,24 @@ public static function orientationProvider(): iterable
308308
yield 'landscape' => [Orientation::Landscape, 1920, 1080];
309309
yield 'portrait' => [Orientation::Portrait, 1080, 1920];
310310
}
311+
312+
#[Test]
313+
public function isExternalUrl(): void
314+
{
315+
$faker = self::faker();
316+
$response = $faker->storyAssetResponse([
317+
'is_external_url' => $expected = $faker->boolean(),
318+
]);
319+
320+
self::assertSame($expected, (new Asset($response))->isExternalUrl);
321+
}
322+
323+
#[Test]
324+
public function isExternalUrlKeyIsOptional(): void
325+
{
326+
$response = self::faker()->storyAssetResponse();
327+
unset($response['is_external_url']);
328+
329+
self::assertFalse((new Asset($response))->isExternalUrl);
330+
}
311331
}

0 commit comments

Comments
 (0)