diff --git a/src/Builder/InterfaceBuilder.php b/src/Builder/InterfaceBuilder.php index 822e7e3..b3ccd24 100644 --- a/src/Builder/InterfaceBuilder.php +++ b/src/Builder/InterfaceBuilder.php @@ -4,20 +4,20 @@ namespace SimPod\GraphQLUtils\Builder; +use GraphQL\Type\Definition\AbstractType; use GraphQL\Type\Definition\FieldDefinition; use GraphQL\Type\Definition\InterfaceType; /** - * @see InterfaceType - * * @phpstan-import-type InterfaceConfig from InterfaceType + * @phpstan-import-type ResolveType from AbstractType */ class InterfaceBuilder extends TypeBuilder { /** @var InterfaceType[] */ private array $interfaces = []; - /** @var callable|null */ + /** @var ResolveType|null */ private $resolveType; /** @var array>|callable():array> */ @@ -53,7 +53,11 @@ public function setFields(callable|array $fields): self return $this; } - /** @return $this */ + /** + * @param ResolveType $resolveType + * + * @return $this + */ public function setResolveType(callable $resolveType): self { $this->resolveType = $resolveType; diff --git a/tests/Builder/InterfaceBuilderTest.php b/tests/Builder/InterfaceBuilderTest.php index c9f479d..72783a7 100644 --- a/tests/Builder/InterfaceBuilderTest.php +++ b/tests/Builder/InterfaceBuilderTest.php @@ -39,7 +39,7 @@ public function __construct() ], ) ->setResolveType( - static fn (bool $value): Type => $value ? Type::string() : Type::int(), + static fn (mixed $value) => $value === true ? 'type' : null, ) ->build(); @@ -55,8 +55,8 @@ public function __construct() self::assertCount(1, $interface['fields']); self::assertArrayHasKey('resolveType', $interface); self::assertIsCallable($interface['resolveType']); - self::assertSame(Type::string(), $interface['resolveType'](true, null, $resolveInfo)); - self::assertSame(Type::int(), $interface['resolveType'](false, null, $resolveInfo)); + self::assertSame('type', $interface['resolveType'](true, null, $resolveInfo)); + self::assertNull($interface['resolveType'](false, null, $resolveInfo)); } public function testInvalidValue(): void