From 397d12dc13aeb09d32260ca5c6b21fc1c93b4823 Mon Sep 17 00:00:00 2001 From: Alan Poulain Date: Wed, 25 Jan 2023 17:40:39 +0100 Subject: [PATCH] fix(graphql): name and key should be the same for an enum without Enum suffix in class name --- src/GraphQl/Type/TypeBuilder.php | 9 ++++----- tests/GraphQl/Type/TypeBuilderTest.php | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/GraphQl/Type/TypeBuilder.php b/src/GraphQl/Type/TypeBuilder.php index 4c9fec5e649..516b5efe18d 100644 --- a/src/GraphQl/Type/TypeBuilder.php +++ b/src/GraphQl/Type/TypeBuilder.php @@ -240,13 +240,12 @@ public function getPaginatedCollectionType(GraphQLType $resourceType, Operation public function getEnumType(Operation $operation): GraphQLType { $enumName = $operation->getShortName(); - $enumKey = $enumName; if (!str_ends_with($enumName, 'Enum')) { - $enumKey = sprintf('%sEnum', $enumName); + $enumName = sprintf('%sEnum', $enumName); } - if ($this->typesContainer->has($enumKey)) { - return $this->typesContainer->get($enumKey); + if ($this->typesContainer->has($enumName)) { + return $this->typesContainer->get($enumName); } /** @var FieldsBuilderEnumInterface|FieldsBuilderInterface $fieldsBuilder */ @@ -268,7 +267,7 @@ public function getEnumType(Operation $operation): GraphQLType } $enumType = new EnumType($enumConfig); - $this->typesContainer->set($enumKey, $enumType); + $this->typesContainer->set($enumName, $enumType); return $enumType; } diff --git a/tests/GraphQl/Type/TypeBuilderTest.php b/tests/GraphQl/Type/TypeBuilderTest.php index 0eed16b666f..fd1265d1042 100644 --- a/tests/GraphQl/Type/TypeBuilderTest.php +++ b/tests/GraphQl/Type/TypeBuilderTest.php @@ -590,7 +590,7 @@ public function testGetEnumType(): void $this->fieldsBuilderLocatorProphecy->get('api_platform.graphql.fields_builder')->willReturn($fieldsBuilderProphecy->reveal()); self::assertEquals(new EnumType([ - 'name' => $enumName, + 'name' => 'GamePlayModeEnum', 'description' => $enumDescription, 'values' => $enumValues, ]), $this->typeBuilder->getEnumType($operation));