Skip to content

Commit bb3250a

Browse files
committed
fix: uuid resolves itsself
1 parent 066e47b commit bb3250a

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

src/Resolver/StoryResolver.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
public function resolve(array $target, array $relations): array
2525
{
2626
$relationMap = [];
27-
$seen = [];
2827

2928
foreach ($relations as $relation) {
3029
Assert::keyExists($relation, 'uuid');
@@ -38,6 +37,10 @@ public function resolve(array $target, array $relations): array
3837
private function doResolve(array $target, array $relationMap, array $seen): array
3938
{
4039
foreach ($target as $key => $value) {
40+
if ('uuid' === $key) {
41+
continue;
42+
}
43+
4144
if (\is_string($value) && isset($relationMap[$value])) {
4245
if (\in_array($value, $seen, true)) {
4346
continue;

tests/Unit/Resolver/StoryResolverTest.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,4 +270,39 @@ public function resolveWithManyNestedRels(): void
270270

271271
self::assertSame($expected, $resolver->resolve($story, $references));
272272
}
273+
274+
#[Test]
275+
public function resolveMustNeverResolveUuidOfStory(): void
276+
{
277+
$resolver = new StoryResolver();
278+
279+
$faker = self::faker();
280+
281+
$story = [
282+
'name' => $faker->word(),
283+
'content' => [
284+
'uuid' => $uuid = $faker->uuid(),
285+
'reference' => $referenceUuid = $faker->uuid(),
286+
'some_field' => $faker->word(),
287+
],
288+
];
289+
290+
$references = [
291+
$a = [
292+
'uuid' => $referenceUuid,
293+
'name' => $faker->word(),
294+
'another_field' => $faker->sentence(),
295+
],
296+
$b = [
297+
'uuid' => $uuid,
298+
'name' => $faker->word(),
299+
'another_field' => $faker->sentence(),
300+
],
301+
];
302+
303+
$expected = $story;
304+
$expected['content']['reference'] = $a;
305+
306+
self::assertSame($expected, $resolver->resolve($story, $references));
307+
}
273308
}

0 commit comments

Comments
 (0)