Class: GraphQL::Schema::SchemaValidation
- Inherits:
-
Object
- Object
- GraphQL::Schema::SchemaValidation
- Defined in:
- lib/graphql/schema/schema_validation.rb
Overview
Validates a schema (specifically, GraphQL::SCHEMA).
It checks:
-
All classes exposed by nodes actually exist
-
Field types requested by nodes actually exist
-
Fields’ corresponding methods actually exist
To validate a schema, use GraphQL::Schema::Schema#validate.
Instance Method Summary collapse
-
#validate(schema) ⇒ Object
Validates the schema.
Instance Method Details
#validate(schema) ⇒ Object
Validates the schema
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/graphql/schema/schema_validation.rb', line 11 def validate(schema) schema.types.each do |type_name, type_class| type_class.exposes_class_names.each do |exposes_class_name| begin Object.const_get(exposes_class_name) rescue NameError raise GraphQL::ExposesClassMissingError.new(type_class) end end type_class.all_fields.each do |field_name, field_mapping| # Make sure the type exists field_mapping.type_class # Make sure the node can handle it if !type_class.respond_to_field?(field_mapping.name) raise GraphQL::FieldNotDefinedError.new(type_class, field_mapping.name) end end end end |