Sha256: 3894b435c5b3e15495d5f7a622254c81c756976ceb5b08224a9d6fd39bdf78d4
Contents?: true
Size: 1.93 KB
Versions: 1
Compression:
Stored size: 1.93 KB
Contents
# frozen_string_literal: true require "spec_helper" describe GraphQL::StaticValidation::VariablesAreUsedAndDefined do include StaticValidationHelpers let(:query_string) {' query getCheese( $usedVar: Int!, $usedInnerVar: [DairyAnimal!]!, $usedInlineFragmentVar: Int!, $usedFragmentVar: Int!, $notUsedVar: Int!, ) { c1: cheese(id: $usedVar) { __typename } ... on Query { c2: cheese(id: $usedInlineFragmentVar) { similarCheese(source: $usedInnerVar) { __typename } } } c3: cheese(id: $undefinedVar) { __typename } ... outerCheeseFields } fragment outerCheeseFields on Query { ... innerCheeseFields } fragment innerCheeseFields on Query { c4: cheese(id: $undefinedFragmentVar) { __typename } c5: cheese(id: $usedFragmentVar) { __typename } } '} it "finds variables which are used-but-not-defined or defined-but-not-used" do expected = [ { "message"=>"Variable $notUsedVar is declared by getCheese but not used", "locations"=>[{"line"=>2, "column"=>5}], "fields"=>["query getCheese"], }, { "message"=>"Variable $undefinedVar is used by getCheese but not declared", "locations"=>[{"line"=>19, "column"=>22}], "fields"=>["query getCheese", "c3", "id"], }, { "message"=>"Variable $undefinedFragmentVar is used by innerCheeseFields but not declared", "locations"=>[{"line"=>29, "column"=>22}], "fields"=>["fragment innerCheeseFields", "c4", "id"], }, ] assert_equal(expected, errors) end describe "usages in directives on fragment spreads" do let(:query_string) { <<-GRAPHQL query($f: Boolean!){ ...F @include(if: $f) } fragment F on Query { __typename } GRAPHQL } it "finds usages" do assert_equal([], errors) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
graphql-1.9.0.pre1 | spec/graphql/static_validation/rules/variables_are_used_and_defined_spec.rb |