Skip to content

Commit

Permalink
Add extending more complete tests
Browse files Browse the repository at this point in the history
  • Loading branch information
SerafimArts committed Dec 26, 2017
1 parent d3fbb60 commit d09fe7d
Showing 1 changed file with 31 additions and 5 deletions.
36 changes: 31 additions & 5 deletions tests/Compiler/ExtendTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,14 @@ public function provider(): array
{
$schema = <<<'GraphQL'
type Test {
field(id: ID!): String
id: String
createdAt: DateTime!
}
extend type Test @deprecated(reason: "Test") {
id(arg: String): ID!
field(id: String): ID!
id(arg: String): ID
updatedAt: DateTime
}
GraphQL;
Expand All @@ -55,8 +57,8 @@ public function testType(Document $document): void
static::assertNotNull($type);
static::assertNotNull($type->getField('id'));

static::assertEquals(3, $type->getNumberOfFields());
static::assertCount(3, $type->getFields());
static::assertEquals(4, $type->getNumberOfFields());
static::assertCount(4, $type->getFields());
}

/**
Expand All @@ -74,9 +76,10 @@ public function testTypeFields(Document $document): void
static::assertNotNull($type);

static::assertTrue($type->hasField('id'));
static::assertTrue($type->hasField('field'));
static::assertTrue($type->hasField('createdAt'));
static::assertTrue($type->hasField('updatedAt'));
static::assertFalse($type->hasField('deprecated'));
static::assertFalse($type->hasField('not-exists'));
}

/**
Expand All @@ -94,10 +97,33 @@ public function testTypeArguments(Document $document): void

$field = $type->getField('id');
static::assertNotNull($field);
static::assertTrue($field->isNonNull());
static::assertFalse($field->isNonNull());

static::assertTrue($field->hasArgument('arg'));
static::assertNotNull($field->getArgument('arg'));
static::assertCount(1, $field->getArguments());
}

/**
* @dataProvider provider
*
* @param Document|DocumentBuilder $document
* @return void
* @throws \PHPUnit\Framework\Exception
*/
public function testTypeArgumentsOverriddenLogic(Document $document): void
{
/** @var ObjectDefinition $type */
$type = $document->getTypeDefinition('Test');
static::assertNotNull($type);

$field = $type->getField('field');
static::assertNotNull($field);
static::assertTrue($field->isNonNull());
static::assertEquals('ID', $field->getTypeDefinition()->getName());

static::assertTrue($field->hasArgument('id'));
static::assertFalse($field->getArgument('id')->isNonNull());
static::assertEquals('String', $field->getArgument('id')->getTypeDefinition()->getName());
}
}

0 comments on commit d09fe7d

Please sign in to comment.