Query validation should pass if empty array of rules is provided

This commit is contained in:
Vladimir Razuvaev 2017-07-13 02:38:31 +07:00
parent 65d9472b0b
commit 37a42ededd
2 changed files with 16 additions and 1 deletions

View File

@ -118,8 +118,11 @@ class DocumentValidator
public static function validate(Schema $schema, DocumentNode $ast, array $rules = null, TypeInfo $typeInfo = null) public static function validate(Schema $schema, DocumentNode $ast, array $rules = null, TypeInfo $typeInfo = null)
{ {
if (null === $rules) {
$rules = static::allRules();
}
$typeInfo = $typeInfo ?: new TypeInfo($schema); $typeInfo = $typeInfo ?: new TypeInfo($schema);
$errors = static::visitUsingRules($schema, $typeInfo, $ast, $rules ?: static::allRules()); $errors = static::visitUsingRules($schema, $typeInfo, $ast, $rules);
return $errors; return $errors;
} }

View File

@ -23,4 +23,16 @@ class ValidationTest extends TestCase
} }
'); ');
} }
public function testPassesValidationWithEmptyRules()
{
$query = '{invalid}';
$expectedError = [
'message' => 'Cannot query field "invalid" on type "QueryRoot".',
'locations' => [ ['line' => 1, 'column' => 2] ]
];
$this->expectFailsCompleteValidation($query, [$expectedError]);
$this->expectValid($this->getDefaultSchema(), [], $query);
}
} }