Skip to content

Commit 7176039

Browse files
committed
Fix
1 parent b76e944 commit 7176039

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

src/Resolver/StoryResolver.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public function resolve(array $target, array $relations): array
2626

2727
foreach ($relations as $relation) {
2828
Assert::keyExists($relation, 'uuid');
29+
Assert::uuid($relation['uuid']);
2930
$relationMap[$relation['uuid']] = $relation;
3031
}
3132

tests/Unit/Resolver/StoryResolverTest.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,46 @@ public function resolve(): void
5656
self::assertSame($expected, $resolver->resolve($story, $references));
5757
}
5858

59+
/**
60+
* @test
61+
*/
62+
public function resolveThrowsExceptionWhenUuidKeyDoesNotExist(): void
63+
{
64+
$resolver = new StoryResolver();
65+
66+
$faker = self::faker();
67+
68+
$reference = [
69+
'id' => $faker->uuid(),
70+
'name' => $faker->word(),
71+
'another_field' => $faker->sentence(),
72+
];
73+
74+
self::expectException(\InvalidArgumentException::class);
75+
76+
$resolver->resolve(['name' => $faker->word()], [$reference]);
77+
}
78+
79+
/**
80+
* @test
81+
*/
82+
public function resolveThrowsExceptionWhenUuidKeyContainsNoValidUuid(): void
83+
{
84+
$resolver = new StoryResolver();
85+
86+
$faker = self::faker();
87+
88+
$reference = [
89+
'uuid' => $faker->word(),
90+
'name' => $faker->word(),
91+
'another_field' => $faker->sentence(),
92+
];
93+
94+
self::expectException(\InvalidArgumentException::class);
95+
96+
$resolver->resolve(['name' => $faker->word()], [$reference]);
97+
}
98+
5999
/**
60100
* @test
61101
*/

0 commit comments

Comments
 (0)