Skip to content

Commit dff1699

Browse files
committed
Clarify ResolveInfoTest
1 parent 5f77870 commit dff1699

File tree

1 file changed

+96
-44
lines changed

1 file changed

+96
-44
lines changed

tests/Type/ResolveInfoTest.php

Lines changed: 96 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -449,31 +449,35 @@ public function testDeepFieldSelectionOnDuplicatedFields(): void
449449

450450
public function testPathAndUnaliasedPath(): void
451451
{
452+
$resolveInfo = new ObjectType([
453+
'name' => 'ResolveInfo',
454+
'fields' => [
455+
'path' => Type::listOf(Type::id()),
456+
'unaliasedPath' => Type::listOf(Type::id()),
457+
],
458+
]);
459+
460+
$returnResolveInfo = static fn ($value, array $args, $context, ResolveInfo $info): ResolveInfo => $info;
452461
$level2 = new ObjectType([
453462
'name' => 'level2',
454463
'fields' => [
455-
'scalar1' => [
456-
'type' => Type::string(),
457-
'resolve' => static function ($value, array $args, $context, ResolveInfo $info) {
458-
return 'path: ' . implode('.', $info->path) . ', unaliasedPath: ' . implode('.', $info->unaliasedPath);
459-
},
464+
'info1' => [
465+
'type' => $resolveInfo,
466+
'resolve' => $returnResolveInfo,
460467
],
461-
'scalar2' => [
462-
'type' => Type::string(),
463-
'resolve' => static function ($value, array $args, $context, ResolveInfo $info) {
464-
return 'path: ' . implode('.', $info->path) . ', unaliasedPath: ' . implode('.', $info->unaliasedPath);
465-
},
468+
'info2' => [
469+
'type' => $resolveInfo,
470+
'resolve' => $returnResolveInfo,
466471
],
467472
],
468473
]);
474+
469475
$level1 = new ObjectType([
470476
'name' => 'level1',
471477
'fields' => [
472478
'level2' => [
473479
'type' => $level2,
474-
'resolve' => function () {
475-
return true;
476-
},
480+
'resolve' => fn (): bool => true,
477481
],
478482
],
479483
]);
@@ -483,9 +487,7 @@ public function testPathAndUnaliasedPath(): void
483487
'fields' => [
484488
'level1' => [
485489
'type' => $level1,
486-
'resolve' => function () {
487-
return true;
488-
},
490+
'resolve' => fn (): bool => true,
489491
],
490492
],
491493
]);
@@ -496,10 +498,16 @@ public function testPathAndUnaliasedPath(): void
496498
query {
497499
level1 {
498500
level2 {
499-
scalar1
501+
info1 {
502+
path
503+
unaliasedPath
504+
}
500505
}
501506
level1000: level2 {
502-
scalar2
507+
info2 {
508+
path
509+
unaliasedPath
510+
}
503511
}
504512
}
505513
}
@@ -510,10 +518,16 @@ public function testPathAndUnaliasedPath(): void
510518
'data' => [
511519
'level1' => [
512520
'level2' => [
513-
'scalar1' => 'path: level1.level2.scalar1, unaliasedPath: level1.level2.scalar1',
521+
'info1' => [
522+
'path' => ['level1', 'level2', 'info1'],
523+
'unaliasedPath' => ['level1', 'level2', 'info1'],
524+
],
514525
],
515526
'level1000' => [
516-
'scalar2' => 'path: level1.level1000.scalar2, unaliasedPath: level1.level2.scalar2',
527+
'info2' => [
528+
'path' => ['level1', 'level1000', 'info2'],
529+
'unaliasedPath' => ['level1', 'level2', 'info2'],
530+
],
517531
],
518532
],
519533
],
@@ -522,31 +536,35 @@ public function testPathAndUnaliasedPath(): void
522536

523537
public function testPathAndUnaliasedPathForList(): void
524538
{
539+
$resolveInfo = new ObjectType([
540+
'name' => 'ResolveInfo',
541+
'fields' => [
542+
'path' => Type::listOf(Type::id()),
543+
'unaliasedPath' => Type::listOf(Type::id()),
544+
],
545+
]);
546+
547+
$returnResolveInfo = static fn ($value, array $args, $context, ResolveInfo $info): ResolveInfo => $info;
525548
$level2 = new ObjectType([
526549
'name' => 'level2',
527550
'fields' => [
528-
'scalar1' => [
529-
'type' => Type::string(),
530-
'resolve' => static function ($value, array $args, $context, ResolveInfo $info) {
531-
return 'path: ' . implode('.', $info->path) . ', unaliasedPath: ' . implode('.', $info->unaliasedPath);
532-
},
551+
'info1' => [
552+
'type' => $resolveInfo,
553+
'resolve' => $returnResolveInfo,
533554
],
534-
'scalar2' => [
535-
'type' => Type::string(),
536-
'resolve' => static function ($value, array $args, $context, ResolveInfo $info) {
537-
return 'path: ' . implode('.', $info->path) . ', unaliasedPath: ' . implode('.', $info->unaliasedPath);
538-
},
555+
'info2' => [
556+
'type' => $resolveInfo,
557+
'resolve' => $returnResolveInfo,
539558
],
540559
],
541560
]);
561+
542562
$level1 = new ObjectType([
543563
'name' => 'level1',
544564
'fields' => [
545565
'level2' => [
546566
'type' => ListOfType::listOf($level2),
547-
'resolve' => function () {
548-
return ['a', 'b', 'c'];
549-
},
567+
'resolve' => fn (): array => ['a', 'b', 'c'],
550568
],
551569
],
552570
]);
@@ -556,9 +574,7 @@ public function testPathAndUnaliasedPathForList(): void
556574
'fields' => [
557575
'level1' => [
558576
'type' => $level1,
559-
'resolve' => function () {
560-
return true;
561-
},
577+
'resolve' => fn (): bool => true,
562578
],
563579
],
564580
]);
@@ -569,10 +585,16 @@ public function testPathAndUnaliasedPathForList(): void
569585
query {
570586
level1 {
571587
level2 {
572-
scalar1
588+
info1 {
589+
path
590+
unaliasedPath
591+
}
573592
}
574593
level1000: level2 {
575-
scalar2
594+
info2 {
595+
path
596+
unaliasedPath
597+
}
576598
}
577599
}
578600
}
@@ -583,14 +605,44 @@ public function testPathAndUnaliasedPathForList(): void
583605
'data' => [
584606
'level1' => [
585607
'level2' => [
586-
['scalar1' => 'path: level1.level2.0.scalar1, unaliasedPath: level1.level2.0.scalar1'],
587-
['scalar1' => 'path: level1.level2.1.scalar1, unaliasedPath: level1.level2.1.scalar1'],
588-
['scalar1' => 'path: level1.level2.2.scalar1, unaliasedPath: level1.level2.2.scalar1'],
608+
[
609+
'info1' => [
610+
'path' => ['level1', 'level2', '0', 'info1'],
611+
'unaliasedPath' => ['level1', 'level2', '0', 'info1'],
612+
],
613+
],
614+
[
615+
'info1' => [
616+
'path' => ['level1', 'level2', '1', 'info1'],
617+
'unaliasedPath' => ['level1', 'level2', '1', 'info1'],
618+
],
619+
],
620+
[
621+
'info1' => [
622+
'path' => ['level1', 'level2', '2', 'info1'],
623+
'unaliasedPath' => ['level1', 'level2', '2', 'info1'],
624+
],
625+
],
589626
],
590627
'level1000' => [
591-
['scalar2' => 'path: level1.level1000.0.scalar2, unaliasedPath: level1.level2.0.scalar2'],
592-
['scalar2' => 'path: level1.level1000.1.scalar2, unaliasedPath: level1.level2.1.scalar2'],
593-
['scalar2' => 'path: level1.level1000.2.scalar2, unaliasedPath: level1.level2.2.scalar2'],
628+
[
629+
'info2' => [
630+
'path' => ['level1', 'level1000', '0', 'info2'],
631+
'unaliasedPath' => ['level1', 'level2', '0', 'info2'],
632+
],
633+
],
634+
[
635+
'info2' => [
636+
'path' => ['level1', 'level1000', '1', 'info2'],
637+
'unaliasedPath' => ['level1', 'level2', '1', 'info2'],
638+
],
639+
],
640+
[
641+
'info2' => [
642+
'path' => ['level1', 'level1000', '2', 'info2'],
643+
'unaliasedPath' => ['level1', 'level2', '2', 'info2'],
644+
],
645+
],
594646
],
595647
],
596648
],

0 commit comments

Comments
 (0)