@@ -449,31 +449,35 @@ public function testDeepFieldSelectionOnDuplicatedFields(): void
449
449
450
450
public function testPathAndUnaliasedPath (): void
451
451
{
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 ;
452
461
$ level2 = new ObjectType ([
453
462
'name ' => 'level2 ' ,
454
463
'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 ,
460
467
],
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 ,
466
471
],
467
472
],
468
473
]);
474
+
469
475
$ level1 = new ObjectType ([
470
476
'name ' => 'level1 ' ,
471
477
'fields ' => [
472
478
'level2 ' => [
473
479
'type ' => $ level2 ,
474
- 'resolve ' => function () {
475
- return true ;
476
- },
480
+ 'resolve ' => fn (): bool => true ,
477
481
],
478
482
],
479
483
]);
@@ -483,9 +487,7 @@ public function testPathAndUnaliasedPath(): void
483
487
'fields ' => [
484
488
'level1 ' => [
485
489
'type ' => $ level1 ,
486
- 'resolve ' => function () {
487
- return true ;
488
- },
490
+ 'resolve ' => fn (): bool => true ,
489
491
],
490
492
],
491
493
]);
@@ -496,10 +498,16 @@ public function testPathAndUnaliasedPath(): void
496
498
query {
497
499
level1 {
498
500
level2 {
499
- scalar1
501
+ info1 {
502
+ path
503
+ unaliasedPath
504
+ }
500
505
}
501
506
level1000: level2 {
502
- scalar2
507
+ info2 {
508
+ path
509
+ unaliasedPath
510
+ }
503
511
}
504
512
}
505
513
}
@@ -510,10 +518,16 @@ public function testPathAndUnaliasedPath(): void
510
518
'data ' => [
511
519
'level1 ' => [
512
520
'level2 ' => [
513
- 'scalar1 ' => 'path: level1.level2.scalar1, unaliasedPath: level1.level2.scalar1 ' ,
521
+ 'info1 ' => [
522
+ 'path ' => ['level1 ' , 'level2 ' , 'info1 ' ],
523
+ 'unaliasedPath ' => ['level1 ' , 'level2 ' , 'info1 ' ],
524
+ ],
514
525
],
515
526
'level1000 ' => [
516
- 'scalar2 ' => 'path: level1.level1000.scalar2, unaliasedPath: level1.level2.scalar2 ' ,
527
+ 'info2 ' => [
528
+ 'path ' => ['level1 ' , 'level1000 ' , 'info2 ' ],
529
+ 'unaliasedPath ' => ['level1 ' , 'level2 ' , 'info2 ' ],
530
+ ],
517
531
],
518
532
],
519
533
],
@@ -522,31 +536,35 @@ public function testPathAndUnaliasedPath(): void
522
536
523
537
public function testPathAndUnaliasedPathForList (): void
524
538
{
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 ;
525
548
$ level2 = new ObjectType ([
526
549
'name ' => 'level2 ' ,
527
550
'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 ,
533
554
],
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 ,
539
558
],
540
559
],
541
560
]);
561
+
542
562
$ level1 = new ObjectType ([
543
563
'name ' => 'level1 ' ,
544
564
'fields ' => [
545
565
'level2 ' => [
546
566
'type ' => ListOfType::listOf ($ level2 ),
547
- 'resolve ' => function () {
548
- return ['a ' , 'b ' , 'c ' ];
549
- },
567
+ 'resolve ' => fn (): array => ['a ' , 'b ' , 'c ' ],
550
568
],
551
569
],
552
570
]);
@@ -556,9 +574,7 @@ public function testPathAndUnaliasedPathForList(): void
556
574
'fields ' => [
557
575
'level1 ' => [
558
576
'type ' => $ level1 ,
559
- 'resolve ' => function () {
560
- return true ;
561
- },
577
+ 'resolve ' => fn (): bool => true ,
562
578
],
563
579
],
564
580
]);
@@ -569,10 +585,16 @@ public function testPathAndUnaliasedPathForList(): void
569
585
query {
570
586
level1 {
571
587
level2 {
572
- scalar1
588
+ info1 {
589
+ path
590
+ unaliasedPath
591
+ }
573
592
}
574
593
level1000: level2 {
575
- scalar2
594
+ info2 {
595
+ path
596
+ unaliasedPath
597
+ }
576
598
}
577
599
}
578
600
}
@@ -583,14 +605,44 @@ public function testPathAndUnaliasedPathForList(): void
583
605
'data ' => [
584
606
'level1 ' => [
585
607
'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
+ ],
589
626
],
590
627
'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
+ ],
594
646
],
595
647
],
596
648
],
0 commit comments