diff --git a/composer.json b/composer.json index 1446d4f7d..14fa5734f 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "symfony/framework-bundle": "^4.4 || ^5.0", "symfony/options-resolver": "^4.4 || ^5.0", "symfony/property-access": "^4.4 || ^5.0", - "webonyx/graphql-php": "^14.0.1" + "webonyx/graphql-php": ">=14.5" }, "suggest": { "nelmio/cors-bundle": "For more flexibility when using CORS prefight", diff --git a/src/Config/InterfaceTypeDefinition.php b/src/Config/InterfaceTypeDefinition.php index dcca745a7..e24e59c49 100644 --- a/src/Config/InterfaceTypeDefinition.php +++ b/src/Config/InterfaceTypeDefinition.php @@ -13,12 +13,16 @@ public function getDefinition(): ArrayNodeDefinition /** @var ArrayNodeDefinition $node */ $node = self::createNode('_interface_config'); + /** @phpstan-ignore-next-line */ $node ->children() ->append($this->nameSection()) ->append($this->outputFieldsSection()) ->append($this->resolveTypeSection()) ->append($this->descriptionSection()) + ->arrayNode('interfaces') + ->prototype('scalar')->info('One of internal or custom interface types.')->end() + ->end() ->end(); return $node; diff --git a/tests/Functional/App/config/global/config.yml b/tests/Functional/App/config/global/config.yml index 39a5b5191..120f1b25e 100644 --- a/tests/Functional/App/config/global/config.yml +++ b/tests/Functional/App/config/global/config.yml @@ -15,6 +15,7 @@ overblog_graphql: schema: query: Query mutation: ~ + types: [User, Photo, Post] mappings: types: - diff --git a/tests/Functional/Command/fixtures/schema.descriptions.json b/tests/Functional/Command/fixtures/schema.descriptions.json index 51708f3bf..7d060c5fe 100644 --- a/tests/Functional/Command/fixtures/schema.descriptions.json +++ b/tests/Functional/Command/fixtures/schema.descriptions.json @@ -782,7 +782,7 @@ }, { "name": "INTERFACE", - "description": "Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.", + "description": "Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.", "isDeprecated": false, "deprecationReason": null }, diff --git a/tests/Functional/Relay/Node/GlobalTest.php b/tests/Functional/Relay/Node/GlobalTest.php index 33fcb6e61..94eb07bdd 100644 --- a/tests/Functional/Relay/Node/GlobalTest.php +++ b/tests/Functional/Relay/Node/GlobalTest.php @@ -16,7 +16,6 @@ class GlobalTest extends TestCase protected function setUp(): void { parent::setUp(); - static::bootKernel(['test_case' => 'global']); }