Sha256: 9c7ce758131973894adcff5b5307565ee69a9f494125b5641f533bbc651b5bbe
Contents?: true
Size: 1.88 KB
Versions: 2
Compression:
Stored size: 1.88 KB
Contents
require 'spec_helper' describe GraphQL::Schema::TypeValidator do let(:base_type_defn) { { name: "InvalidType", description: "...", deprecation_reason: nil, kind: GraphQL::TypeKinds::OBJECT, interfaces: [], fields: {}, } } let(:object) { o = OpenStruct.new(type_defn) def o.to_s; "InvalidType"; end o } let(:validator) { GraphQL::Schema::TypeValidator.new } let(:errors) { e = []; validator.validate(object, e); e;} describe 'when name isnt defined' do let(:type_defn) { base_type_defn.delete_if {|k,v| k == :name }} it 'requires name' do assert_equal( ["InvalidType must respond to #name() to be a Type"], errors ) end end describe 'when a method returns nil' do let(:type_defn) { base_type_defn.merge(interfaces: nil)} it 'requires name' do assert_equal( ["InvalidType must return a value for #interfaces() to be a OBJECT"], errors ) end end describe "when a field name isnt a string" do let(:type_defn) { base_type_defn.merge(fields: {symbol_field: (GraphQL::Field.new {|f|}) }) } it "requires string names" do assert_equal( ["InvalidType.fields keys must be Strings, but some aren't: symbol_field"], errors ) end end describe "when a Union isnt valid" do let(:object) { GraphQL::UnionType.define do name "Something" description "some union" possible_types [DairyProductInputType] end } let(:errors) { e = []; GraphQL::Schema::TypeValidator.new.validate(object, e); e;} it 'must be 2+ types, must be only object types' do expected = [ "Something.possible_types must be objects, but some aren't: DairyProductInput", "Union Something must be defined with 2 or more types, not 1", ] assert_equal(expected, errors) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
graphql-0.6.2 | spec/graphql/schema/type_validator_spec.rb |
graphql-0.6.1 | spec/graphql/schema/type_validator_spec.rb |