Sha256: 08306639a5f7617572ad87c20401814cd96040e85c0dd404452d4dbed1f1b55b
Contents?: true
Size: 1.41 KB
Versions: 1
Compression:
Stored size: 1.41 KB
Contents
require "spec_helper" describe GraphQL::StaticValidation::RequiredArgumentsArePresent do let(:query_string) {" query getCheese { cheese(id: 1) { source } cheese { source } } fragment cheeseFields on Cheese { similarCheese(id: 1) flavor @include(if: true) id @skip } "} let(:validator) { GraphQL::StaticValidation::Validator.new(schema: DummySchema, rules: [GraphQL::StaticValidation::RequiredArgumentsArePresent]) } let(:query) { GraphQL::Query.new(DummySchema, query_string) } let(:errors) { validator.validate(query)[:errors] } it "finds undefined arguments to fields and directives" do assert_equal(3, errors.length) query_root_error = { "message"=>"Field 'cheese' is missing required arguments: id", "locations"=>[{"line"=>4, "column"=>7}], "fields"=>["query getCheese", "cheese"], } assert_includes(errors, query_root_error) fragment_error = { "message"=>"Field 'similarCheese' is missing required arguments: source", "locations"=>[{"line"=>8, "column"=>7}], "fields"=>["fragment cheeseFields", "similarCheese"], } assert_includes(errors, fragment_error) directive_error = { "message"=>"Directive 'skip' is missing required arguments: if", "locations"=>[{"line"=>10, "column"=>10}], "fields"=>["fragment cheeseFields", "id"], } assert_includes(errors, directive_error) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
graphql-0.18.15 | spec/graphql/static_validation/rules/required_arguments_are_present_spec.rb |