mirror of
https://github.com/retailcrm/graphql-php.git
synced 2024-11-22 12:56:05 +03:00
parent
22cee49747
commit
fda73f3212
@ -24,6 +24,7 @@ use GraphQL\Type\Definition\ScalarType;
|
||||
use GraphQL\Type\Definition\Type;
|
||||
use GraphQL\Type\Definition\UnionType;
|
||||
use GraphQL\Type\Schema;
|
||||
use GraphQL\Utils\BuildSchema;
|
||||
use GraphQL\Utils\SchemaExtender;
|
||||
use GraphQL\Utils\SchemaPrinter;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
@ -1962,4 +1963,48 @@ extend type Query {
|
||||
$result = GraphQL::executeQuery($extendedSchema, $query);
|
||||
self::assertSame(['data' => ['hello' => 'Hello World!']], $result->toArray());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see https://github.com/webonyx/graphql-php/issues/180
|
||||
*/
|
||||
public function testShouldBeAbleToIntroduceNewTypesThroughExtension()
|
||||
{
|
||||
$sdl = '
|
||||
type Query {
|
||||
defaultValue: String
|
||||
}
|
||||
type Foo {
|
||||
value: Int
|
||||
}
|
||||
';
|
||||
|
||||
$documentNode = Parser::parse($sdl);
|
||||
$schema = BuildSchema::build($documentNode);
|
||||
|
||||
$extensionSdl = '
|
||||
type Bar {
|
||||
foo: Foo
|
||||
}
|
||||
';
|
||||
|
||||
$extendedDocumentNode = Parser::parse($extensionSdl);
|
||||
$extendedSchema = SchemaExtender::extend($schema, $extendedDocumentNode);
|
||||
|
||||
$expected = '
|
||||
type Bar {
|
||||
foo: Foo
|
||||
}
|
||||
|
||||
type Foo {
|
||||
value: Int
|
||||
}
|
||||
|
||||
type Query {
|
||||
defaultValue: String
|
||||
}
|
||||
';
|
||||
|
||||
static::assertEquals($this->dedent($expected), SchemaPrinter::doPrint($extendedSchema));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user