...

Text file src/github.com/vektah/gqlparser/validator/imported/tests.json

Documentation: github.com/vektah/gqlparser/validator/imported

     1  {
     2  "schemas": [
     3    "schema {\n  query: QueryRoot\n}\n\ndirective @onQuery on QUERY\n\ndirective @onMutation on MUTATION\n\ndirective @onSubscription on SUBSCRIPTION\n\ndirective @onField on FIELD\n\ndirective @onFragmentDefinition on FRAGMENT_DEFINITION\n\ndirective @onFragmentSpread on FRAGMENT_SPREAD\n\ndirective @onInlineFragment on INLINE_FRAGMENT\n\ndirective @onSchema on SCHEMA\n\ndirective @onScalar on SCALAR\n\ndirective @onObject on OBJECT\n\ndirective @onFieldDefinition on FIELD_DEFINITION\n\ndirective @onArgumentDefinition on ARGUMENT_DEFINITION\n\ndirective @onInterface on INTERFACE\n\ndirective @onUnion on UNION\n\ndirective @onEnum on ENUM\n\ndirective @onEnumValue on ENUM_VALUE\n\ndirective @onInputObject on INPUT_OBJECT\n\ndirective @onInputFieldDefinition on INPUT_FIELD_DEFINITION\n\ntype Alien implements Being & Intelligent {\n  iq: Int\n  name(surname: Boolean): String\n  numEyes: Int\n}\n\nscalar Any\n\ninterface Being {\n  name(surname: Boolean): String\n}\n\ninterface Canine {\n  name(surname: Boolean): String\n}\n\ntype Cat implements Being & Pet {\n  name(surname: Boolean): String\n  nickname: String\n  meows: Boolean\n  meowVolume: Int\n  furColor: FurColor\n}\n\nunion CatOrDog = Dog | Cat\n\ninput ComplexInput {\n  requiredField: Boolean!\n  nonNullField: Boolean! = false\n  intField: Int\n  stringField: String\n  booleanField: Boolean\n  stringListField: [String]\n}\n\ntype ComplicatedArgs {\n  intArgField(intArg: Int): String\n  nonNullIntArgField(nonNullIntArg: Int!): String\n  stringArgField(stringArg: String): String\n  booleanArgField(booleanArg: Boolean): String\n  enumArgField(enumArg: FurColor): String\n  floatArgField(floatArg: Float): String\n  idArgField(idArg: ID): String\n  stringListArgField(stringListArg: [String]): String\n  stringListNonNullArgField(stringListNonNullArg: [String!]): String\n  complexArgField(complexArg: ComplexInput): String\n  multipleReqs(req1: Int!, req2: Int!): String\n  nonNullFieldWithDefault(arg: Int! = 0): String\n  multipleOpts(opt1: Int = 0, opt2: Int = 0): String\n  multipleOptAndReq(req1: Int!, req2: Int!, opt1: Int = 0, opt2: Int = 0): String\n}\n\ntype Dog implements Being & Pet & Canine {\n  name(surname: Boolean): String\n  nickname: String\n  barkVolume: Int\n  barks: Boolean\n  doesKnowCommand(dogCommand: DogCommand): Boolean\n  isHousetrained(atOtherHomes: Boolean = true): Boolean\n  isAtLocation(x: Int, y: Int): Boolean\n}\n\nenum DogCommand {\n  SIT\n  HEEL\n  DOWN\n}\n\nunion DogOrHuman = Dog | Human\n\nenum FurColor {\n  BROWN\n  BLACK\n  TAN\n  SPOTTED\n  NO_FUR\n  UNKNOWN\n}\n\ntype Human implements Being & Intelligent {\n  name(surname: Boolean): String\n  pets: [Pet]\n  relatives: [Human]\n  iq: Int\n}\n\nunion HumanOrAlien = Human | Alien\n\ninterface Intelligent {\n  iq: Int\n}\n\nscalar Invalid\n\ninterface Pet {\n  name(surname: Boolean): String\n}\n\ntype QueryRoot {\n  human(id: ID): Human\n  alien: Alien\n  dog: Dog\n  cat: Cat\n  pet: Pet\n  catOrDog: CatOrDog\n  dogOrHuman: DogOrHuman\n  humanOrAlien: HumanOrAlien\n  complicatedArgs: ComplicatedArgs\n  invalidArg(arg: Invalid): String\n  anyArg(arg: Any): String\n}\n",
     4    "schema {\n  query: QueryRoot\n}\n\ntype Connection {\n  edges: [Edge]\n}\n\ntype Edge {\n  node: Node\n}\n\ntype IntBox implements SomeBox {\n  scalar: Int\n  deepBox: IntBox\n  unrelatedField: String\n  listStringBox: [StringBox]\n  stringBox: StringBox\n  intBox: IntBox\n}\n\ntype Node {\n  id: ID\n  name: String\n}\n\ninterface NonNullStringBox1 {\n  scalar: String!\n}\n\ntype NonNullStringBox1Impl implements SomeBox & NonNullStringBox1 {\n  scalar: String!\n  unrelatedField: String\n  deepBox: SomeBox\n}\n\ninterface NonNullStringBox2 {\n  scalar: String!\n}\n\ntype NonNullStringBox2Impl implements SomeBox & NonNullStringBox2 {\n  scalar: String!\n  unrelatedField: String\n  deepBox: SomeBox\n}\n\ntype QueryRoot {\n  someBox: SomeBox\n  connection: Connection\n}\n\ninterface SomeBox {\n  deepBox: SomeBox\n  unrelatedField: String\n}\n\ntype StringBox implements SomeBox {\n  scalar: String\n  deepBox: StringBox\n  unrelatedField: String\n  listStringBox: [StringBox]\n  stringBox: StringBox\n  intBox: IntBox\n}\n",
     5    "type Foo {\n  constructor: String\n}\n\ntype Query {\n  foo: Foo\n}\n"
     6  ],
     7  "tests": [
     8    {
     9      "name": "Validate: Executable definitions/with only operation",
    10      "rule": "ExecutableDefinitions",
    11      "schema": 0,
    12      "query": "\n      query Foo {\n        dog {\n          name\n        }\n      }\n    ",
    13      "errors": []
    14    },
    15    {
    16      "name": "Validate: Executable definitions/with operation and fragment",
    17      "rule": "ExecutableDefinitions",
    18      "schema": 0,
    19      "query": "\n      query Foo {\n        dog {\n          name\n          ...Frag\n        }\n      }\n\n      fragment Frag on Dog {\n        name\n      }\n    ",
    20      "errors": []
    21    },
    22    {
    23      "name": "Validate: Executable definitions/with type definition",
    24      "rule": "ExecutableDefinitions",
    25      "schema": 0,
    26      "query": "\n      query Foo {\n        dog {\n          name\n        }\n      }\n\n      type Cow {\n        name: String\n      }\n\n      extend type Dog {\n        color: String\n      }\n    ",
    27      "errors": [
    28        {
    29          "message": "The Cow definition is not executable.",
    30          "locations": [
    31            {
    32              "line": 8,
    33              "column": 7
    34            }
    35          ]
    36        },
    37        {
    38          "message": "The Dog definition is not executable.",
    39          "locations": [
    40            {
    41              "line": 12,
    42              "column": 7
    43            }
    44          ]
    45        }
    46      ]
    47    },
    48    {
    49      "name": "Validate: Executable definitions/with schema definition",
    50      "rule": "ExecutableDefinitions",
    51      "schema": 0,
    52      "query": "\n      schema {\n        query: Query\n      }\n\n      type Query {\n        test: String\n      }\n\n      extend schema @directive\n    ",
    53      "errors": [
    54        {
    55          "message": "The schema definition is not executable.",
    56          "locations": [
    57            {
    58              "line": 2,
    59              "column": 7
    60            }
    61          ]
    62        },
    63        {
    64          "message": "The Query definition is not executable.",
    65          "locations": [
    66            {
    67              "line": 6,
    68              "column": 7
    69            }
    70          ]
    71        },
    72        {
    73          "message": "The schema definition is not executable.",
    74          "locations": [
    75            {
    76              "line": 10,
    77              "column": 7
    78            }
    79          ]
    80        }
    81      ]
    82    },
    83    {
    84      "name": "Validate: Fields on correct type/Object field selection",
    85      "rule": "FieldsOnCorrectType",
    86      "schema": 0,
    87      "query": "\n      fragment objectFieldSelection on Dog {\n        __typename\n        name\n      }\n    ",
    88      "errors": []
    89    },
    90    {
    91      "name": "Validate: Fields on correct type/Aliased object field selection",
    92      "rule": "FieldsOnCorrectType",
    93      "schema": 0,
    94      "query": "\n      fragment aliasedObjectFieldSelection on Dog {\n        tn : __typename\n        otherName : name\n      }\n    ",
    95      "errors": []
    96    },
    97    {
    98      "name": "Validate: Fields on correct type/Interface field selection",
    99      "rule": "FieldsOnCorrectType",
   100      "schema": 0,
   101      "query": "\n      fragment interfaceFieldSelection on Pet {\n        __typename\n        name\n      }\n    ",
   102      "errors": []
   103    },
   104    {
   105      "name": "Validate: Fields on correct type/Aliased interface field selection",
   106      "rule": "FieldsOnCorrectType",
   107      "schema": 0,
   108      "query": "\n      fragment interfaceFieldSelection on Pet {\n        otherName : name\n      }\n    ",
   109      "errors": []
   110    },
   111    {
   112      "name": "Validate: Fields on correct type/Lying alias selection",
   113      "rule": "FieldsOnCorrectType",
   114      "schema": 0,
   115      "query": "\n      fragment lyingAliasSelection on Dog {\n        name : nickname\n      }\n    ",
   116      "errors": []
   117    },
   118    {
   119      "name": "Validate: Fields on correct type/Ignores fields on unknown type",
   120      "rule": "FieldsOnCorrectType",
   121      "schema": 0,
   122      "query": "\n      fragment unknownSelection on UnknownType {\n        unknownField\n      }\n    ",
   123      "errors": []
   124    },
   125    {
   126      "name": "Validate: Fields on correct type/reports errors when type is known again",
   127      "rule": "FieldsOnCorrectType",
   128      "schema": 0,
   129      "query": "\n      fragment typeKnownAgain on Pet {\n        unknown_pet_field {\n          ... on Cat {\n            unknown_cat_field\n          }\n        }\n      }",
   130      "errors": [
   131        {
   132          "message": "Cannot query field \"unknown_pet_field\" on type \"Pet\".",
   133          "locations": [
   134            {
   135              "line": 3,
   136              "column": 9
   137            }
   138          ]
   139        },
   140        {
   141          "message": "Cannot query field \"unknown_cat_field\" on type \"Cat\".",
   142          "locations": [
   143            {
   144              "line": 5,
   145              "column": 13
   146            }
   147          ]
   148        }
   149      ]
   150    },
   151    {
   152      "name": "Validate: Fields on correct type/Field not defined on fragment",
   153      "rule": "FieldsOnCorrectType",
   154      "schema": 0,
   155      "query": "\n      fragment fieldNotDefined on Dog {\n        meowVolume\n      }",
   156      "errors": [
   157        {
   158          "message": "Cannot query field \"meowVolume\" on type \"Dog\". Did you mean \"barkVolume\"?",
   159          "locations": [
   160            {
   161              "line": 3,
   162              "column": 9
   163            }
   164          ]
   165        }
   166      ]
   167    },
   168    {
   169      "name": "Validate: Fields on correct type/Ignores deeply unknown field",
   170      "rule": "FieldsOnCorrectType",
   171      "schema": 0,
   172      "query": "\n      fragment deepFieldNotDefined on Dog {\n        unknown_field {\n          deeper_unknown_field\n        }\n      }",
   173      "errors": [
   174        {
   175          "message": "Cannot query field \"unknown_field\" on type \"Dog\".",
   176          "locations": [
   177            {
   178              "line": 3,
   179              "column": 9
   180            }
   181          ]
   182        }
   183      ]
   184    },
   185    {
   186      "name": "Validate: Fields on correct type/Sub-field not defined",
   187      "rule": "FieldsOnCorrectType",
   188      "schema": 0,
   189      "query": "\n      fragment subFieldNotDefined on Human {\n        pets {\n          unknown_field\n        }\n      }",
   190      "errors": [
   191        {
   192          "message": "Cannot query field \"unknown_field\" on type \"Pet\".",
   193          "locations": [
   194            {
   195              "line": 4,
   196              "column": 11
   197            }
   198          ]
   199        }
   200      ]
   201    },
   202    {
   203      "name": "Validate: Fields on correct type/Field not defined on inline fragment",
   204      "rule": "FieldsOnCorrectType",
   205      "schema": 0,
   206      "query": "\n      fragment fieldNotDefined on Pet {\n        ... on Dog {\n          meowVolume\n        }\n      }",
   207      "errors": [
   208        {
   209          "message": "Cannot query field \"meowVolume\" on type \"Dog\". Did you mean \"barkVolume\"?",
   210          "locations": [
   211            {
   212              "line": 4,
   213              "column": 11
   214            }
   215          ]
   216        }
   217      ]
   218    },
   219    {
   220      "name": "Validate: Fields on correct type/Aliased field target not defined",
   221      "rule": "FieldsOnCorrectType",
   222      "schema": 0,
   223      "query": "\n      fragment aliasedFieldTargetNotDefined on Dog {\n        volume : mooVolume\n      }",
   224      "errors": [
   225        {
   226          "message": "Cannot query field \"mooVolume\" on type \"Dog\". Did you mean \"barkVolume\"?",
   227          "locations": [
   228            {
   229              "line": 3,
   230              "column": 9
   231            }
   232          ]
   233        }
   234      ]
   235    },
   236    {
   237      "name": "Validate: Fields on correct type/Aliased lying field target not defined",
   238      "rule": "FieldsOnCorrectType",
   239      "schema": 0,
   240      "query": "\n      fragment aliasedLyingFieldTargetNotDefined on Dog {\n        barkVolume : kawVolume\n      }",
   241      "errors": [
   242        {
   243          "message": "Cannot query field \"kawVolume\" on type \"Dog\". Did you mean \"barkVolume\"?",
   244          "locations": [
   245            {
   246              "line": 3,
   247              "column": 9
   248            }
   249          ]
   250        }
   251      ]
   252    },
   253    {
   254      "name": "Validate: Fields on correct type/Not defined on interface",
   255      "rule": "FieldsOnCorrectType",
   256      "schema": 0,
   257      "query": "\n      fragment notDefinedOnInterface on Pet {\n        tailLength\n      }",
   258      "errors": [
   259        {
   260          "message": "Cannot query field \"tailLength\" on type \"Pet\".",
   261          "locations": [
   262            {
   263              "line": 3,
   264              "column": 9
   265            }
   266          ]
   267        }
   268      ]
   269    },
   270    {
   271      "name": "Validate: Fields on correct type/Defined on implementors but not on interface",
   272      "rule": "FieldsOnCorrectType",
   273      "schema": 0,
   274      "query": "\n      fragment definedOnImplementorsButNotInterface on Pet {\n        nickname\n      }",
   275      "errors": [
   276        {
   277          "message": "Cannot query field \"nickname\" on type \"Pet\".",
   278          "locations": [
   279            {
   280              "line": 3,
   281              "column": 9
   282            }
   283          ]
   284        }
   285      ]
   286    },
   287    {
   288      "name": "Validate: Fields on correct type/Meta field selection on union",
   289      "rule": "FieldsOnCorrectType",
   290      "schema": 0,
   291      "query": "\n      fragment directFieldSelectionOnUnion on CatOrDog {\n        __typename\n      }",
   292      "errors": []
   293    },
   294    {
   295      "name": "Validate: Fields on correct type/Direct field selection on union",
   296      "rule": "FieldsOnCorrectType",
   297      "schema": 0,
   298      "query": "\n      fragment directFieldSelectionOnUnion on CatOrDog {\n        directField\n      }",
   299      "errors": [
   300        {
   301          "message": "Cannot query field \"directField\" on type \"CatOrDog\".",
   302          "locations": [
   303            {
   304              "line": 3,
   305              "column": 9
   306            }
   307          ]
   308        }
   309      ]
   310    },
   311    {
   312      "name": "Validate: Fields on correct type/Defined on implementors queried on union",
   313      "rule": "FieldsOnCorrectType",
   314      "schema": 0,
   315      "query": "\n      fragment definedOnImplementorsQueriedOnUnion on CatOrDog {\n        name\n      }",
   316      "errors": [
   317        {
   318          "message": "Cannot query field \"name\" on type \"CatOrDog\".",
   319          "locations": [
   320            {
   321              "line": 3,
   322              "column": 9
   323            }
   324          ]
   325        }
   326      ]
   327    },
   328    {
   329      "name": "Validate: Fields on correct type/valid field in inline fragment",
   330      "rule": "FieldsOnCorrectType",
   331      "schema": 0,
   332      "query": "\n      fragment objectFieldSelection on Pet {\n        ... on Dog {\n          name\n        }\n        ... {\n          name\n        }\n      }\n    ",
   333      "errors": []
   334    },
   335    {
   336      "name": "Validate: Fragments on composite types/object is valid fragment type",
   337      "rule": "FragmentsOnCompositeTypes",
   338      "schema": 0,
   339      "query": "\n      fragment validFragment on Dog {\n        barks\n      }\n    ",
   340      "errors": []
   341    },
   342    {
   343      "name": "Validate: Fragments on composite types/interface is valid fragment type",
   344      "rule": "FragmentsOnCompositeTypes",
   345      "schema": 0,
   346      "query": "\n      fragment validFragment on Pet {\n        name\n      }\n    ",
   347      "errors": []
   348    },
   349    {
   350      "name": "Validate: Fragments on composite types/object is valid inline fragment type",
   351      "rule": "FragmentsOnCompositeTypes",
   352      "schema": 0,
   353      "query": "\n      fragment validFragment on Pet {\n        ... on Dog {\n          barks\n        }\n      }\n    ",
   354      "errors": []
   355    },
   356    {
   357      "name": "Validate: Fragments on composite types/inline fragment without type is valid",
   358      "rule": "FragmentsOnCompositeTypes",
   359      "schema": 0,
   360      "query": "\n      fragment validFragment on Pet {\n        ... {\n          name\n        }\n      }\n    ",
   361      "errors": []
   362    },
   363    {
   364      "name": "Validate: Fragments on composite types/union is valid fragment type",
   365      "rule": "FragmentsOnCompositeTypes",
   366      "schema": 0,
   367      "query": "\n      fragment validFragment on CatOrDog {\n        __typename\n      }\n    ",
   368      "errors": []
   369    },
   370    {
   371      "name": "Validate: Fragments on composite types/scalar is invalid fragment type",
   372      "rule": "FragmentsOnCompositeTypes",
   373      "schema": 0,
   374      "query": "\n      fragment scalarFragment on Boolean {\n        bad\n      }\n    ",
   375      "errors": [
   376        {
   377          "message": "Fragment \"scalarFragment\" cannot condition on non composite type \"Boolean\".",
   378          "locations": [
   379            {
   380              "line": 2,
   381              "column": 34
   382            }
   383          ]
   384        }
   385      ]
   386    },
   387    {
   388      "name": "Validate: Fragments on composite types/enum is invalid fragment type",
   389      "rule": "FragmentsOnCompositeTypes",
   390      "schema": 0,
   391      "query": "\n      fragment scalarFragment on FurColor {\n        bad\n      }\n    ",
   392      "errors": [
   393        {
   394          "message": "Fragment \"scalarFragment\" cannot condition on non composite type \"FurColor\".",
   395          "locations": [
   396            {
   397              "line": 2,
   398              "column": 34
   399            }
   400          ]
   401        }
   402      ]
   403    },
   404    {
   405      "name": "Validate: Fragments on composite types/input object is invalid fragment type",
   406      "rule": "FragmentsOnCompositeTypes",
   407      "schema": 0,
   408      "query": "\n      fragment inputFragment on ComplexInput {\n        stringField\n      }\n    ",
   409      "errors": [
   410        {
   411          "message": "Fragment \"inputFragment\" cannot condition on non composite type \"ComplexInput\".",
   412          "locations": [
   413            {
   414              "line": 2,
   415              "column": 33
   416            }
   417          ]
   418        }
   419      ]
   420    },
   421    {
   422      "name": "Validate: Fragments on composite types/scalar is invalid inline fragment type",
   423      "rule": "FragmentsOnCompositeTypes",
   424      "schema": 0,
   425      "query": "\n      fragment invalidFragment on Pet {\n        ... on String {\n          barks\n        }\n      }\n    ",
   426      "errors": [
   427        {
   428          "message": "Fragment cannot condition on non composite type \"String\".",
   429          "locations": [
   430            {
   431              "line": 3,
   432              "column": 16
   433            }
   434          ]
   435        }
   436      ]
   437    },
   438    {
   439      "name": "Validate: Known argument names/single arg is known",
   440      "rule": "KnownArgumentNames",
   441      "schema": 0,
   442      "query": "\n      fragment argOnRequiredArg on Dog {\n        doesKnowCommand(dogCommand: SIT)\n      }\n    ",
   443      "errors": []
   444    },
   445    {
   446      "name": "Validate: Known argument names/multiple args are known",
   447      "rule": "KnownArgumentNames",
   448      "schema": 0,
   449      "query": "\n      fragment multipleArgs on ComplicatedArgs {\n        multipleReqs(req1: 1, req2: 2)\n      }\n    ",
   450      "errors": []
   451    },
   452    {
   453      "name": "Validate: Known argument names/ignores args of unknown fields",
   454      "rule": "KnownArgumentNames",
   455      "schema": 0,
   456      "query": "\n      fragment argOnUnknownField on Dog {\n        unknownField(unknownArg: SIT)\n      }\n    ",
   457      "errors": []
   458    },
   459    {
   460      "name": "Validate: Known argument names/multiple args in reverse order are known",
   461      "rule": "KnownArgumentNames",
   462      "schema": 0,
   463      "query": "\n      fragment multipleArgsReverseOrder on ComplicatedArgs {\n        multipleReqs(req2: 2, req1: 1)\n      }\n    ",
   464      "errors": []
   465    },
   466    {
   467      "name": "Validate: Known argument names/no args on optional arg",
   468      "rule": "KnownArgumentNames",
   469      "schema": 0,
   470      "query": "\n      fragment noArgOnOptionalArg on Dog {\n        isHousetrained\n      }\n    ",
   471      "errors": []
   472    },
   473    {
   474      "name": "Validate: Known argument names/args are known deeply",
   475      "rule": "KnownArgumentNames",
   476      "schema": 0,
   477      "query": "\n      {\n        dog {\n          doesKnowCommand(dogCommand: SIT)\n        }\n        human {\n          pet {\n            ... on Dog {\n              doesKnowCommand(dogCommand: SIT)\n            }\n          }\n        }\n      }\n    ",
   478      "errors": []
   479    },
   480    {
   481      "name": "Validate: Known argument names/directive args are known",
   482      "rule": "KnownArgumentNames",
   483      "schema": 0,
   484      "query": "\n      {\n        dog @skip(if: true)\n      }\n    ",
   485      "errors": []
   486    },
   487    {
   488      "name": "Validate: Known argument names/undirective args are invalid",
   489      "rule": "KnownArgumentNames",
   490      "schema": 0,
   491      "query": "\n      {\n        dog @skip(unless: true)\n      }\n    ",
   492      "errors": [
   493        {
   494          "message": "Unknown argument \"unless\" on directive \"@skip\".",
   495          "locations": [
   496            {
   497              "line": 3,
   498              "column": 19
   499            }
   500          ]
   501        }
   502      ]
   503    },
   504    {
   505      "name": "Validate: Known argument names/misspelled directive args are reported",
   506      "rule": "KnownArgumentNames",
   507      "schema": 0,
   508      "query": "\n      {\n        dog @skip(iff: true)\n      }\n    ",
   509      "errors": [
   510        {
   511          "message": "Unknown argument \"iff\" on directive \"@skip\". Did you mean \"if\"?",
   512          "locations": [
   513            {
   514              "line": 3,
   515              "column": 19
   516            }
   517          ]
   518        }
   519      ]
   520    },
   521    {
   522      "name": "Validate: Known argument names/invalid arg name",
   523      "rule": "KnownArgumentNames",
   524      "schema": 0,
   525      "query": "\n      fragment invalidArgName on Dog {\n        doesKnowCommand(unknown: true)\n      }\n    ",
   526      "errors": [
   527        {
   528          "message": "Unknown argument \"unknown\" on field \"doesKnowCommand\" of type \"Dog\".",
   529          "locations": [
   530            {
   531              "line": 3,
   532              "column": 25
   533            }
   534          ]
   535        }
   536      ]
   537    },
   538    {
   539      "name": "Validate: Known argument names/misspelled arg name is reported",
   540      "rule": "KnownArgumentNames",
   541      "schema": 0,
   542      "query": "\n      fragment invalidArgName on Dog {\n        doesKnowCommand(dogcommand: true)\n      }\n    ",
   543      "errors": [
   544        {
   545          "message": "Unknown argument \"dogcommand\" on field \"doesKnowCommand\" of type \"Dog\". Did you mean \"dogCommand\"?",
   546          "locations": [
   547            {
   548              "line": 3,
   549              "column": 25
   550            }
   551          ]
   552        }
   553      ]
   554    },
   555    {
   556      "name": "Validate: Known argument names/unknown args amongst known args",
   557      "rule": "KnownArgumentNames",
   558      "schema": 0,
   559      "query": "\n      fragment oneGoodArgOneInvalidArg on Dog {\n        doesKnowCommand(whoknows: 1, dogCommand: SIT, unknown: true)\n      }\n    ",
   560      "errors": [
   561        {
   562          "message": "Unknown argument \"whoknows\" on field \"doesKnowCommand\" of type \"Dog\".",
   563          "locations": [
   564            {
   565              "line": 3,
   566              "column": 25
   567            }
   568          ]
   569        },
   570        {
   571          "message": "Unknown argument \"unknown\" on field \"doesKnowCommand\" of type \"Dog\".",
   572          "locations": [
   573            {
   574              "line": 3,
   575              "column": 55
   576            }
   577          ]
   578        }
   579      ]
   580    },
   581    {
   582      "name": "Validate: Known argument names/unknown args deeply",
   583      "rule": "KnownArgumentNames",
   584      "schema": 0,
   585      "query": "\n      {\n        dog {\n          doesKnowCommand(unknown: true)\n        }\n        human {\n          pet {\n            ... on Dog {\n              doesKnowCommand(unknown: true)\n            }\n          }\n        }\n      }\n    ",
   586      "errors": [
   587        {
   588          "message": "Unknown argument \"unknown\" on field \"doesKnowCommand\" of type \"Dog\".",
   589          "locations": [
   590            {
   591              "line": 4,
   592              "column": 27
   593            }
   594          ]
   595        },
   596        {
   597          "message": "Unknown argument \"unknown\" on field \"doesKnowCommand\" of type \"Dog\".",
   598          "locations": [
   599            {
   600              "line": 9,
   601              "column": 31
   602            }
   603          ]
   604        }
   605      ]
   606    },
   607    {
   608      "name": "Validate: Known directives/with no directives",
   609      "rule": "KnownDirectives",
   610      "schema": 0,
   611      "query": "\n      query Foo {\n        name\n        ...Frag\n      }\n\n      fragment Frag on Dog {\n        name\n      }\n    ",
   612      "errors": []
   613    },
   614    {
   615      "name": "Validate: Known directives/with known directives",
   616      "rule": "KnownDirectives",
   617      "schema": 0,
   618      "query": "\n      {\n        dog @include(if: true) {\n          name\n        }\n        human @skip(if: false) {\n          name\n        }\n      }\n    ",
   619      "errors": []
   620    },
   621    {
   622      "name": "Validate: Known directives/with unknown directive",
   623      "rule": "KnownDirectives",
   624      "schema": 0,
   625      "query": "\n      {\n        dog @unknown(directive: \"value\") {\n          name\n        }\n      }\n    ",
   626      "errors": [
   627        {
   628          "message": "Unknown directive \"unknown\".",
   629          "locations": [
   630            {
   631              "line": 3,
   632              "column": 13
   633            }
   634          ]
   635        }
   636      ]
   637    },
   638    {
   639      "name": "Validate: Known directives/with many unknown directives",
   640      "rule": "KnownDirectives",
   641      "schema": 0,
   642      "query": "\n      {\n        dog @unknown(directive: \"value\") {\n          name\n        }\n        human @unknown(directive: \"value\") {\n          name\n          pets @unknown(directive: \"value\") {\n            name\n          }\n        }\n      }\n    ",
   643      "errors": [
   644        {
   645          "message": "Unknown directive \"unknown\".",
   646          "locations": [
   647            {
   648              "line": 3,
   649              "column": 13
   650            }
   651          ]
   652        },
   653        {
   654          "message": "Unknown directive \"unknown\".",
   655          "locations": [
   656            {
   657              "line": 6,
   658              "column": 15
   659            }
   660          ]
   661        },
   662        {
   663          "message": "Unknown directive \"unknown\".",
   664          "locations": [
   665            {
   666              "line": 8,
   667              "column": 16
   668            }
   669          ]
   670        }
   671      ]
   672    },
   673    {
   674      "name": "Validate: Known directives/with well placed directives",
   675      "rule": "KnownDirectives",
   676      "schema": 0,
   677      "query": "\n      query Foo @onQuery {\n        name @include(if: true)\n        ...Frag @include(if: true)\n        skippedField @skip(if: true)\n        ...SkippedFrag @skip(if: true)\n      }\n\n      mutation Bar @onMutation {\n        someField\n      }\n    ",
   678      "errors": []
   679    },
   680    {
   681      "name": "Validate: Known directives/with misplaced directives",
   682      "rule": "KnownDirectives",
   683      "schema": 0,
   684      "query": "\n      query Foo @include(if: true) {\n        name @onQuery\n        ...Frag @onQuery\n      }\n\n      mutation Bar @onQuery {\n        someField\n      }\n    ",
   685      "errors": [
   686        {
   687          "message": "Directive \"include\" may not be used on QUERY.",
   688          "locations": [
   689            {
   690              "line": 2,
   691              "column": 17
   692            }
   693          ]
   694        },
   695        {
   696          "message": "Directive \"onQuery\" may not be used on FIELD.",
   697          "locations": [
   698            {
   699              "line": 3,
   700              "column": 14
   701            }
   702          ]
   703        },
   704        {
   705          "message": "Directive \"onQuery\" may not be used on FRAGMENT_SPREAD.",
   706          "locations": [
   707            {
   708              "line": 4,
   709              "column": 17
   710            }
   711          ]
   712        },
   713        {
   714          "message": "Directive \"onQuery\" may not be used on MUTATION.",
   715          "locations": [
   716            {
   717              "line": 7,
   718              "column": 20
   719            }
   720          ]
   721        }
   722      ]
   723    },
   724    {
   725      "name": "Validate: Known fragment names/known fragment names are valid",
   726      "rule": "KnownFragmentNames",
   727      "schema": 0,
   728      "query": "\n      {\n        human(id: 4) {\n          ...HumanFields1\n          ... on Human {\n            ...HumanFields2\n          }\n          ... {\n            name\n          }\n        }\n      }\n      fragment HumanFields1 on Human {\n        name\n        ...HumanFields3\n      }\n      fragment HumanFields2 on Human {\n        name\n      }\n      fragment HumanFields3 on Human {\n        name\n      }\n    ",
   729      "errors": []
   730    },
   731    {
   732      "name": "Validate: Known fragment names/unknown fragment names are invalid",
   733      "rule": "KnownFragmentNames",
   734      "schema": 0,
   735      "query": "\n      {\n        human(id: 4) {\n          ...UnknownFragment1\n          ... on Human {\n            ...UnknownFragment2\n          }\n        }\n      }\n      fragment HumanFields on Human {\n        name\n        ...UnknownFragment3\n      }\n    ",
   736      "errors": [
   737        {
   738          "message": "Unknown fragment \"UnknownFragment1\".",
   739          "locations": [
   740            {
   741              "line": 4,
   742              "column": 14
   743            }
   744          ]
   745        },
   746        {
   747          "message": "Unknown fragment \"UnknownFragment2\".",
   748          "locations": [
   749            {
   750              "line": 6,
   751              "column": 16
   752            }
   753          ]
   754        },
   755        {
   756          "message": "Unknown fragment \"UnknownFragment3\".",
   757          "locations": [
   758            {
   759              "line": 12,
   760              "column": 12
   761            }
   762          ]
   763        }
   764      ]
   765    },
   766    {
   767      "name": "Validate: Known type names/known type names are valid",
   768      "rule": "KnownTypeNames",
   769      "schema": 0,
   770      "query": "\n      query Foo($var: String, $required: [String!]!) {\n        user(id: 4) {\n          pets { ... on Pet { name }, ...PetFields, ... { name } }\n        }\n      }\n      fragment PetFields on Pet {\n        name\n      }\n    ",
   771      "errors": []
   772    },
   773    {
   774      "name": "Validate: Known type names/unknown type names are invalid",
   775      "rule": "KnownTypeNames",
   776      "schema": 0,
   777      "query": "\n      query Foo($var: JumbledUpLetters) {\n        user(id: 4) {\n          name\n          pets { ... on Badger { name }, ...PetFields }\n        }\n      }\n      fragment PetFields on Peettt {\n        name\n      }\n    ",
   778      "errors": [
   779        {
   780          "message": "Unknown type \"JumbledUpLetters\".",
   781          "locations": [
   782            {
   783              "line": 2,
   784              "column": 23
   785            }
   786          ]
   787        },
   788        {
   789          "message": "Unknown type \"Badger\".",
   790          "locations": [
   791            {
   792              "line": 5,
   793              "column": 25
   794            }
   795          ]
   796        },
   797        {
   798          "message": "Unknown type \"Peettt\".",
   799          "locations": [
   800            {
   801              "line": 8,
   802              "column": 29
   803            }
   804          ]
   805        }
   806      ]
   807    },
   808    {
   809      "name": "Validate: Anonymous operation must be alone/no operations",
   810      "rule": "LoneAnonymousOperation",
   811      "schema": 0,
   812      "query": "\n      fragment fragA on Type {\n        field\n      }\n    ",
   813      "errors": []
   814    },
   815    {
   816      "name": "Validate: Anonymous operation must be alone/one anon operation",
   817      "rule": "LoneAnonymousOperation",
   818      "schema": 0,
   819      "query": "\n      {\n        field\n      }\n    ",
   820      "errors": []
   821    },
   822    {
   823      "name": "Validate: Anonymous operation must be alone/multiple named operations",
   824      "rule": "LoneAnonymousOperation",
   825      "schema": 0,
   826      "query": "\n      query Foo {\n        field\n      }\n\n      query Bar {\n        field\n      }\n    ",
   827      "errors": []
   828    },
   829    {
   830      "name": "Validate: Anonymous operation must be alone/anon operation with fragment",
   831      "rule": "LoneAnonymousOperation",
   832      "schema": 0,
   833      "query": "\n      {\n        ...Foo\n      }\n      fragment Foo on Type {\n        field\n      }\n    ",
   834      "errors": []
   835    },
   836    {
   837      "name": "Validate: Anonymous operation must be alone/multiple anon operations",
   838      "rule": "LoneAnonymousOperation",
   839      "schema": 0,
   840      "query": "\n      {\n        fieldA\n      }\n      {\n        fieldB\n      }\n    ",
   841      "errors": [
   842        {
   843          "message": "This anonymous operation must be the only defined operation.",
   844          "locations": [
   845            {
   846              "line": 2,
   847              "column": 7
   848            }
   849          ]
   850        },
   851        {
   852          "message": "This anonymous operation must be the only defined operation.",
   853          "locations": [
   854            {
   855              "line": 5,
   856              "column": 7
   857            }
   858          ]
   859        }
   860      ]
   861    },
   862    {
   863      "name": "Validate: Anonymous operation must be alone/anon operation with a mutation",
   864      "rule": "LoneAnonymousOperation",
   865      "schema": 0,
   866      "query": "\n      {\n        fieldA\n      }\n      mutation Foo {\n        fieldB\n      }\n    ",
   867      "errors": [
   868        {
   869          "message": "This anonymous operation must be the only defined operation.",
   870          "locations": [
   871            {
   872              "line": 2,
   873              "column": 7
   874            }
   875          ]
   876        }
   877      ]
   878    },
   879    {
   880      "name": "Validate: Anonymous operation must be alone/anon operation with a subscription",
   881      "rule": "LoneAnonymousOperation",
   882      "schema": 0,
   883      "query": "\n      {\n        fieldA\n      }\n      subscription Foo {\n        fieldB\n      }\n    ",
   884      "errors": [
   885        {
   886          "message": "This anonymous operation must be the only defined operation.",
   887          "locations": [
   888            {
   889              "line": 2,
   890              "column": 7
   891            }
   892          ]
   893        }
   894      ]
   895    },
   896    {
   897      "name": "Validate: No circular fragment spreads/single reference is valid",
   898      "rule": "NoFragmentCycles",
   899      "schema": 0,
   900      "query": "\n      fragment fragA on Dog { ...fragB }\n      fragment fragB on Dog { name }\n    ",
   901      "errors": []
   902    },
   903    {
   904      "name": "Validate: No circular fragment spreads/spreading twice is not circular",
   905      "rule": "NoFragmentCycles",
   906      "schema": 0,
   907      "query": "\n      fragment fragA on Dog { ...fragB, ...fragB }\n      fragment fragB on Dog { name }\n    ",
   908      "errors": []
   909    },
   910    {
   911      "name": "Validate: No circular fragment spreads/spreading twice indirectly is not circular",
   912      "rule": "NoFragmentCycles",
   913      "schema": 0,
   914      "query": "\n      fragment fragA on Dog { ...fragB, ...fragC }\n      fragment fragB on Dog { ...fragC }\n      fragment fragC on Dog { name }\n    ",
   915      "errors": []
   916    },
   917    {
   918      "name": "Validate: No circular fragment spreads/double spread within abstract types",
   919      "rule": "NoFragmentCycles",
   920      "schema": 0,
   921      "query": "\n      fragment nameFragment on Pet {\n        ... on Dog { name }\n        ... on Cat { name }\n      }\n\n      fragment spreadsInAnon on Pet {\n        ... on Dog { ...nameFragment }\n        ... on Cat { ...nameFragment }\n      }\n    ",
   922      "errors": []
   923    },
   924    {
   925      "name": "Validate: No circular fragment spreads/does not false positive on unknown fragment",
   926      "rule": "NoFragmentCycles",
   927      "schema": 0,
   928      "query": "\n      fragment nameFragment on Pet {\n        ...UnknownFragment\n      }\n    ",
   929      "errors": []
   930    },
   931    {
   932      "name": "Validate: No circular fragment spreads/spreading recursively within field fails",
   933      "rule": "NoFragmentCycles",
   934      "schema": 0,
   935      "query": "\n      fragment fragA on Human { relatives { ...fragA } },\n    ",
   936      "errors": [
   937        {
   938          "message": "Cannot spread fragment \"fragA\" within itself.",
   939          "locations": [
   940            {
   941              "line": 2,
   942              "column": 45
   943            }
   944          ]
   945        }
   946      ]
   947    },
   948    {
   949      "name": "Validate: No circular fragment spreads/no spreading itself directly",
   950      "rule": "NoFragmentCycles",
   951      "schema": 0,
   952      "query": "\n      fragment fragA on Dog { ...fragA }\n    ",
   953      "errors": [
   954        {
   955          "message": "Cannot spread fragment \"fragA\" within itself.",
   956          "locations": [
   957            {
   958              "line": 2,
   959              "column": 31
   960            }
   961          ]
   962        }
   963      ]
   964    },
   965    {
   966      "name": "Validate: No circular fragment spreads/no spreading itself directly within inline fragment",
   967      "rule": "NoFragmentCycles",
   968      "schema": 0,
   969      "query": "\n      fragment fragA on Pet {\n        ... on Dog {\n          ...fragA\n        }\n      }\n    ",
   970      "errors": [
   971        {
   972          "message": "Cannot spread fragment \"fragA\" within itself.",
   973          "locations": [
   974            {
   975              "line": 4,
   976              "column": 11
   977            }
   978          ]
   979        }
   980      ]
   981    },
   982    {
   983      "name": "Validate: No circular fragment spreads/no spreading itself indirectly",
   984      "rule": "NoFragmentCycles",
   985      "schema": 0,
   986      "query": "\n      fragment fragA on Dog { ...fragB }\n      fragment fragB on Dog { ...fragA }\n    ",
   987      "errors": [
   988        {
   989          "message": "Cannot spread fragment \"fragA\" within itself via fragB.",
   990          "locations": [
   991            {
   992              "line": 2,
   993              "column": 31
   994            },
   995            {
   996              "line": 3,
   997              "column": 31
   998            }
   999          ]
  1000        }
  1001      ]
  1002    },
  1003    {
  1004      "name": "Validate: No circular fragment spreads/no spreading itself indirectly reports opposite order",
  1005      "rule": "NoFragmentCycles",
  1006      "schema": 0,
  1007      "query": "\n      fragment fragB on Dog { ...fragA }\n      fragment fragA on Dog { ...fragB }\n    ",
  1008      "errors": [
  1009        {
  1010          "message": "Cannot spread fragment \"fragB\" within itself via fragA.",
  1011          "locations": [
  1012            {
  1013              "line": 2,
  1014              "column": 31
  1015            },
  1016            {
  1017              "line": 3,
  1018              "column": 31
  1019            }
  1020          ]
  1021        }
  1022      ]
  1023    },
  1024    {
  1025      "name": "Validate: No circular fragment spreads/no spreading itself indirectly within inline fragment",
  1026      "rule": "NoFragmentCycles",
  1027      "schema": 0,
  1028      "query": "\n      fragment fragA on Pet {\n        ... on Dog {\n          ...fragB\n        }\n      }\n      fragment fragB on Pet {\n        ... on Dog {\n          ...fragA\n        }\n      }\n    ",
  1029      "errors": [
  1030        {
  1031          "message": "Cannot spread fragment \"fragA\" within itself via fragB.",
  1032          "locations": [
  1033            {
  1034              "line": 4,
  1035              "column": 11
  1036            },
  1037            {
  1038              "line": 9,
  1039              "column": 11
  1040            }
  1041          ]
  1042        }
  1043      ]
  1044    },
  1045    {
  1046      "name": "Validate: No circular fragment spreads/no spreading itself deeply",
  1047      "rule": "NoFragmentCycles",
  1048      "schema": 0,
  1049      "query": "\n      fragment fragA on Dog { ...fragB }\n      fragment fragB on Dog { ...fragC }\n      fragment fragC on Dog { ...fragO }\n      fragment fragX on Dog { ...fragY }\n      fragment fragY on Dog { ...fragZ }\n      fragment fragZ on Dog { ...fragO }\n      fragment fragO on Dog { ...fragP }\n      fragment fragP on Dog { ...fragA, ...fragX }\n    ",
  1050      "errors": [
  1051        {
  1052          "message": "Cannot spread fragment \"fragA\" within itself via fragB, fragC, fragO, fragP.",
  1053          "locations": [
  1054            {
  1055              "line": 2,
  1056              "column": 31
  1057            },
  1058            {
  1059              "line": 3,
  1060              "column": 31
  1061            },
  1062            {
  1063              "line": 4,
  1064              "column": 31
  1065            },
  1066            {
  1067              "line": 8,
  1068              "column": 31
  1069            },
  1070            {
  1071              "line": 9,
  1072              "column": 31
  1073            }
  1074          ]
  1075        },
  1076        {
  1077          "message": "Cannot spread fragment \"fragO\" within itself via fragP, fragX, fragY, fragZ.",
  1078          "locations": [
  1079            {
  1080              "line": 8,
  1081              "column": 31
  1082            },
  1083            {
  1084              "line": 9,
  1085              "column": 41
  1086            },
  1087            {
  1088              "line": 5,
  1089              "column": 31
  1090            },
  1091            {
  1092              "line": 6,
  1093              "column": 31
  1094            },
  1095            {
  1096              "line": 7,
  1097              "column": 31
  1098            }
  1099          ]
  1100        }
  1101      ]
  1102    },
  1103    {
  1104      "name": "Validate: No circular fragment spreads/no spreading itself deeply two paths",
  1105      "rule": "NoFragmentCycles",
  1106      "schema": 0,
  1107      "query": "\n      fragment fragA on Dog { ...fragB, ...fragC }\n      fragment fragB on Dog { ...fragA }\n      fragment fragC on Dog { ...fragA }\n    ",
  1108      "errors": [
  1109        {
  1110          "message": "Cannot spread fragment \"fragA\" within itself via fragB.",
  1111          "locations": [
  1112            {
  1113              "line": 2,
  1114              "column": 31
  1115            },
  1116            {
  1117              "line": 3,
  1118              "column": 31
  1119            }
  1120          ]
  1121        },
  1122        {
  1123          "message": "Cannot spread fragment \"fragA\" within itself via fragC.",
  1124          "locations": [
  1125            {
  1126              "line": 2,
  1127              "column": 41
  1128            },
  1129            {
  1130              "line": 4,
  1131              "column": 31
  1132            }
  1133          ]
  1134        }
  1135      ]
  1136    },
  1137    {
  1138      "name": "Validate: No circular fragment spreads/no spreading itself deeply two paths -- alt traverse order",
  1139      "rule": "NoFragmentCycles",
  1140      "schema": 0,
  1141      "query": "\n      fragment fragA on Dog { ...fragC }\n      fragment fragB on Dog { ...fragC }\n      fragment fragC on Dog { ...fragA, ...fragB }\n    ",
  1142      "errors": [
  1143        {
  1144          "message": "Cannot spread fragment \"fragA\" within itself via fragC.",
  1145          "locations": [
  1146            {
  1147              "line": 2,
  1148              "column": 31
  1149            },
  1150            {
  1151              "line": 4,
  1152              "column": 31
  1153            }
  1154          ]
  1155        },
  1156        {
  1157          "message": "Cannot spread fragment \"fragC\" within itself via fragB.",
  1158          "locations": [
  1159            {
  1160              "line": 4,
  1161              "column": 41
  1162            },
  1163            {
  1164              "line": 3,
  1165              "column": 31
  1166            }
  1167          ]
  1168        }
  1169      ]
  1170    },
  1171    {
  1172      "name": "Validate: No circular fragment spreads/no spreading itself deeply and immediately",
  1173      "rule": "NoFragmentCycles",
  1174      "schema": 0,
  1175      "query": "\n      fragment fragA on Dog { ...fragB }\n      fragment fragB on Dog { ...fragB, ...fragC }\n      fragment fragC on Dog { ...fragA, ...fragB }\n    ",
  1176      "errors": [
  1177        {
  1178          "message": "Cannot spread fragment \"fragB\" within itself.",
  1179          "locations": [
  1180            {
  1181              "line": 3,
  1182              "column": 31
  1183            }
  1184          ]
  1185        },
  1186        {
  1187          "message": "Cannot spread fragment \"fragA\" within itself via fragB, fragC.",
  1188          "locations": [
  1189            {
  1190              "line": 2,
  1191              "column": 31
  1192            },
  1193            {
  1194              "line": 3,
  1195              "column": 41
  1196            },
  1197            {
  1198              "line": 4,
  1199              "column": 31
  1200            }
  1201          ]
  1202        },
  1203        {
  1204          "message": "Cannot spread fragment \"fragB\" within itself via fragC.",
  1205          "locations": [
  1206            {
  1207              "line": 3,
  1208              "column": 41
  1209            },
  1210            {
  1211              "line": 4,
  1212              "column": 41
  1213            }
  1214          ]
  1215        }
  1216      ]
  1217    },
  1218    {
  1219      "name": "Validate: No undefined variables/all variables defined",
  1220      "rule": "NoUndefinedVariables",
  1221      "schema": 0,
  1222      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        field(a: $a, b: $b, c: $c)\n      }\n    ",
  1223      "errors": []
  1224    },
  1225    {
  1226      "name": "Validate: No undefined variables/all variables deeply defined",
  1227      "rule": "NoUndefinedVariables",
  1228      "schema": 0,
  1229      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        field(a: $a) {\n          field(b: $b) {\n            field(c: $c)\n          }\n        }\n      }\n    ",
  1230      "errors": []
  1231    },
  1232    {
  1233      "name": "Validate: No undefined variables/all variables deeply in inline fragments defined",
  1234      "rule": "NoUndefinedVariables",
  1235      "schema": 0,
  1236      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        ... on Type {\n          field(a: $a) {\n            field(b: $b) {\n              ... on Type {\n                field(c: $c)\n              }\n            }\n          }\n        }\n      }\n    ",
  1237      "errors": []
  1238    },
  1239    {
  1240      "name": "Validate: No undefined variables/all variables in fragments deeply defined",
  1241      "rule": "NoUndefinedVariables",
  1242      "schema": 0,
  1243      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field(a: $a) {\n          ...FragB\n        }\n      }\n      fragment FragB on Type {\n        field(b: $b) {\n          ...FragC\n        }\n      }\n      fragment FragC on Type {\n        field(c: $c)\n      }\n    ",
  1244      "errors": []
  1245    },
  1246    {
  1247      "name": "Validate: No undefined variables/variable within single fragment defined in multiple operations",
  1248      "rule": "NoUndefinedVariables",
  1249      "schema": 0,
  1250      "query": "\n      query Foo($a: String) {\n        ...FragA\n      }\n      query Bar($a: String) {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field(a: $a)\n      }\n    ",
  1251      "errors": []
  1252    },
  1253    {
  1254      "name": "Validate: No undefined variables/variable within fragments defined in operations",
  1255      "rule": "NoUndefinedVariables",
  1256      "schema": 0,
  1257      "query": "\n      query Foo($a: String) {\n        ...FragA\n      }\n      query Bar($b: String) {\n        ...FragB\n      }\n      fragment FragA on Type {\n        field(a: $a)\n      }\n      fragment FragB on Type {\n        field(b: $b)\n      }\n    ",
  1258      "errors": []
  1259    },
  1260    {
  1261      "name": "Validate: No undefined variables/variable within recursive fragment defined",
  1262      "rule": "NoUndefinedVariables",
  1263      "schema": 0,
  1264      "query": "\n      query Foo($a: String) {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field(a: $a) {\n          ...FragA\n        }\n      }\n    ",
  1265      "errors": []
  1266    },
  1267    {
  1268      "name": "Validate: No undefined variables/variable not defined",
  1269      "rule": "NoUndefinedVariables",
  1270      "schema": 0,
  1271      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        field(a: $a, b: $b, c: $c, d: $d)\n      }\n    ",
  1272      "errors": [
  1273        {
  1274          "message": "Variable \"$d\" is not defined by operation \"Foo\".",
  1275          "locations": [
  1276            {
  1277              "line": 3,
  1278              "column": 39
  1279            },
  1280            {
  1281              "line": 2,
  1282              "column": 7
  1283            }
  1284          ]
  1285        }
  1286      ]
  1287    },
  1288    {
  1289      "name": "Validate: No undefined variables/variable not defined by un-named query",
  1290      "rule": "NoUndefinedVariables",
  1291      "schema": 0,
  1292      "query": "\n      {\n        field(a: $a)\n      }\n    ",
  1293      "errors": [
  1294        {
  1295          "message": "Variable \"$a\" is not defined.",
  1296          "locations": [
  1297            {
  1298              "line": 3,
  1299              "column": 18
  1300            },
  1301            {
  1302              "line": 2,
  1303              "column": 7
  1304            }
  1305          ]
  1306        }
  1307      ]
  1308    },
  1309    {
  1310      "name": "Validate: No undefined variables/multiple variables not defined",
  1311      "rule": "NoUndefinedVariables",
  1312      "schema": 0,
  1313      "query": "\n      query Foo($b: String) {\n        field(a: $a, b: $b, c: $c)\n      }\n    ",
  1314      "errors": [
  1315        {
  1316          "message": "Variable \"$a\" is not defined by operation \"Foo\".",
  1317          "locations": [
  1318            {
  1319              "line": 3,
  1320              "column": 18
  1321            },
  1322            {
  1323              "line": 2,
  1324              "column": 7
  1325            }
  1326          ]
  1327        },
  1328        {
  1329          "message": "Variable \"$c\" is not defined by operation \"Foo\".",
  1330          "locations": [
  1331            {
  1332              "line": 3,
  1333              "column": 32
  1334            },
  1335            {
  1336              "line": 2,
  1337              "column": 7
  1338            }
  1339          ]
  1340        }
  1341      ]
  1342    },
  1343    {
  1344      "name": "Validate: No undefined variables/variable in fragment not defined by un-named query",
  1345      "rule": "NoUndefinedVariables",
  1346      "schema": 0,
  1347      "query": "\n      {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field(a: $a)\n      }\n    ",
  1348      "errors": [
  1349        {
  1350          "message": "Variable \"$a\" is not defined.",
  1351          "locations": [
  1352            {
  1353              "line": 6,
  1354              "column": 18
  1355            },
  1356            {
  1357              "line": 2,
  1358              "column": 7
  1359            }
  1360          ]
  1361        }
  1362      ]
  1363    },
  1364    {
  1365      "name": "Validate: No undefined variables/variable in fragment not defined by operation",
  1366      "rule": "NoUndefinedVariables",
  1367      "schema": 0,
  1368      "query": "\n      query Foo($a: String, $b: String) {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field(a: $a) {\n          ...FragB\n        }\n      }\n      fragment FragB on Type {\n        field(b: $b) {\n          ...FragC\n        }\n      }\n      fragment FragC on Type {\n        field(c: $c)\n      }\n    ",
  1369      "errors": [
  1370        {
  1371          "message": "Variable \"$c\" is not defined by operation \"Foo\".",
  1372          "locations": [
  1373            {
  1374              "line": 16,
  1375              "column": 18
  1376            },
  1377            {
  1378              "line": 2,
  1379              "column": 7
  1380            }
  1381          ]
  1382        }
  1383      ]
  1384    },
  1385    {
  1386      "name": "Validate: No undefined variables/multiple variables in fragments not defined",
  1387      "rule": "NoUndefinedVariables",
  1388      "schema": 0,
  1389      "query": "\n      query Foo($b: String) {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field(a: $a) {\n          ...FragB\n        }\n      }\n      fragment FragB on Type {\n        field(b: $b) {\n          ...FragC\n        }\n      }\n      fragment FragC on Type {\n        field(c: $c)\n      }\n    ",
  1390      "errors": [
  1391        {
  1392          "message": "Variable \"$a\" is not defined by operation \"Foo\".",
  1393          "locations": [
  1394            {
  1395              "line": 6,
  1396              "column": 18
  1397            },
  1398            {
  1399              "line": 2,
  1400              "column": 7
  1401            }
  1402          ]
  1403        },
  1404        {
  1405          "message": "Variable \"$c\" is not defined by operation \"Foo\".",
  1406          "locations": [
  1407            {
  1408              "line": 16,
  1409              "column": 18
  1410            },
  1411            {
  1412              "line": 2,
  1413              "column": 7
  1414            }
  1415          ]
  1416        }
  1417      ]
  1418    },
  1419    {
  1420      "name": "Validate: No undefined variables/single variable in fragment not defined by multiple operations",
  1421      "rule": "NoUndefinedVariables",
  1422      "schema": 0,
  1423      "query": "\n      query Foo($a: String) {\n        ...FragAB\n      }\n      query Bar($a: String) {\n        ...FragAB\n      }\n      fragment FragAB on Type {\n        field(a: $a, b: $b)\n      }\n    ",
  1424      "errors": [
  1425        {
  1426          "message": "Variable \"$b\" is not defined by operation \"Foo\".",
  1427          "locations": [
  1428            {
  1429              "line": 9,
  1430              "column": 25
  1431            },
  1432            {
  1433              "line": 2,
  1434              "column": 7
  1435            }
  1436          ]
  1437        },
  1438        {
  1439          "message": "Variable \"$b\" is not defined by operation \"Bar\".",
  1440          "locations": [
  1441            {
  1442              "line": 9,
  1443              "column": 25
  1444            },
  1445            {
  1446              "line": 5,
  1447              "column": 7
  1448            }
  1449          ]
  1450        }
  1451      ]
  1452    },
  1453    {
  1454      "name": "Validate: No undefined variables/variables in fragment not defined by multiple operations",
  1455      "rule": "NoUndefinedVariables",
  1456      "schema": 0,
  1457      "query": "\n      query Foo($b: String) {\n        ...FragAB\n      }\n      query Bar($a: String) {\n        ...FragAB\n      }\n      fragment FragAB on Type {\n        field(a: $a, b: $b)\n      }\n    ",
  1458      "errors": [
  1459        {
  1460          "message": "Variable \"$a\" is not defined by operation \"Foo\".",
  1461          "locations": [
  1462            {
  1463              "line": 9,
  1464              "column": 18
  1465            },
  1466            {
  1467              "line": 2,
  1468              "column": 7
  1469            }
  1470          ]
  1471        },
  1472        {
  1473          "message": "Variable \"$b\" is not defined by operation \"Bar\".",
  1474          "locations": [
  1475            {
  1476              "line": 9,
  1477              "column": 25
  1478            },
  1479            {
  1480              "line": 5,
  1481              "column": 7
  1482            }
  1483          ]
  1484        }
  1485      ]
  1486    },
  1487    {
  1488      "name": "Validate: No undefined variables/variable in fragment used by other operation",
  1489      "rule": "NoUndefinedVariables",
  1490      "schema": 0,
  1491      "query": "\n      query Foo($b: String) {\n        ...FragA\n      }\n      query Bar($a: String) {\n        ...FragB\n      }\n      fragment FragA on Type {\n        field(a: $a)\n      }\n      fragment FragB on Type {\n        field(b: $b)\n      }\n    ",
  1492      "errors": [
  1493        {
  1494          "message": "Variable \"$a\" is not defined by operation \"Foo\".",
  1495          "locations": [
  1496            {
  1497              "line": 9,
  1498              "column": 18
  1499            },
  1500            {
  1501              "line": 2,
  1502              "column": 7
  1503            }
  1504          ]
  1505        },
  1506        {
  1507          "message": "Variable \"$b\" is not defined by operation \"Bar\".",
  1508          "locations": [
  1509            {
  1510              "line": 12,
  1511              "column": 18
  1512            },
  1513            {
  1514              "line": 5,
  1515              "column": 7
  1516            }
  1517          ]
  1518        }
  1519      ]
  1520    },
  1521    {
  1522      "name": "Validate: No undefined variables/multiple undefined variables produce multiple errors",
  1523      "rule": "NoUndefinedVariables",
  1524      "schema": 0,
  1525      "query": "\n      query Foo($b: String) {\n        ...FragAB\n      }\n      query Bar($a: String) {\n        ...FragAB\n      }\n      fragment FragAB on Type {\n        field1(a: $a, b: $b)\n        ...FragC\n        field3(a: $a, b: $b)\n      }\n      fragment FragC on Type {\n        field2(c: $c)\n      }\n    ",
  1526      "errors": [
  1527        {
  1528          "message": "Variable \"$a\" is not defined by operation \"Foo\".",
  1529          "locations": [
  1530            {
  1531              "line": 9,
  1532              "column": 19
  1533            },
  1534            {
  1535              "line": 2,
  1536              "column": 7
  1537            }
  1538          ]
  1539        },
  1540        {
  1541          "message": "Variable \"$a\" is not defined by operation \"Foo\".",
  1542          "locations": [
  1543            {
  1544              "line": 11,
  1545              "column": 19
  1546            },
  1547            {
  1548              "line": 2,
  1549              "column": 7
  1550            }
  1551          ]
  1552        },
  1553        {
  1554          "message": "Variable \"$c\" is not defined by operation \"Foo\".",
  1555          "locations": [
  1556            {
  1557              "line": 14,
  1558              "column": 19
  1559            },
  1560            {
  1561              "line": 2,
  1562              "column": 7
  1563            }
  1564          ]
  1565        },
  1566        {
  1567          "message": "Variable \"$b\" is not defined by operation \"Bar\".",
  1568          "locations": [
  1569            {
  1570              "line": 9,
  1571              "column": 26
  1572            },
  1573            {
  1574              "line": 5,
  1575              "column": 7
  1576            }
  1577          ]
  1578        },
  1579        {
  1580          "message": "Variable \"$b\" is not defined by operation \"Bar\".",
  1581          "locations": [
  1582            {
  1583              "line": 11,
  1584              "column": 26
  1585            },
  1586            {
  1587              "line": 5,
  1588              "column": 7
  1589            }
  1590          ]
  1591        },
  1592        {
  1593          "message": "Variable \"$c\" is not defined by operation \"Bar\".",
  1594          "locations": [
  1595            {
  1596              "line": 14,
  1597              "column": 19
  1598            },
  1599            {
  1600              "line": 5,
  1601              "column": 7
  1602            }
  1603          ]
  1604        }
  1605      ]
  1606    },
  1607    {
  1608      "name": "Validate: No unused fragments/all fragment names are used",
  1609      "rule": "NoUnusedFragments",
  1610      "schema": 0,
  1611      "query": "\n      {\n        human(id: 4) {\n          ...HumanFields1\n          ... on Human {\n            ...HumanFields2\n          }\n        }\n      }\n      fragment HumanFields1 on Human {\n        name\n        ...HumanFields3\n      }\n      fragment HumanFields2 on Human {\n        name\n      }\n      fragment HumanFields3 on Human {\n        name\n      }\n    ",
  1612      "errors": []
  1613    },
  1614    {
  1615      "name": "Validate: No unused fragments/all fragment names are used by multiple operations",
  1616      "rule": "NoUnusedFragments",
  1617      "schema": 0,
  1618      "query": "\n      query Foo {\n        human(id: 4) {\n          ...HumanFields1\n        }\n      }\n      query Bar {\n        human(id: 4) {\n          ...HumanFields2\n        }\n      }\n      fragment HumanFields1 on Human {\n        name\n        ...HumanFields3\n      }\n      fragment HumanFields2 on Human {\n        name\n      }\n      fragment HumanFields3 on Human {\n        name\n      }\n    ",
  1619      "errors": []
  1620    },
  1621    {
  1622      "name": "Validate: No unused fragments/contains unknown fragments",
  1623      "rule": "NoUnusedFragments",
  1624      "schema": 0,
  1625      "query": "\n      query Foo {\n        human(id: 4) {\n          ...HumanFields1\n        }\n      }\n      query Bar {\n        human(id: 4) {\n          ...HumanFields2\n        }\n      }\n      fragment HumanFields1 on Human {\n        name\n        ...HumanFields3\n      }\n      fragment HumanFields2 on Human {\n        name\n      }\n      fragment HumanFields3 on Human {\n        name\n      }\n      fragment Unused1 on Human {\n        name\n      }\n      fragment Unused2 on Human {\n        name\n      }\n    ",
  1626      "errors": [
  1627        {
  1628          "message": "Fragment \"Unused1\" is never used.",
  1629          "locations": [
  1630            {
  1631              "line": 22,
  1632              "column": 7
  1633            }
  1634          ]
  1635        },
  1636        {
  1637          "message": "Fragment \"Unused2\" is never used.",
  1638          "locations": [
  1639            {
  1640              "line": 25,
  1641              "column": 7
  1642            }
  1643          ]
  1644        }
  1645      ]
  1646    },
  1647    {
  1648      "name": "Validate: No unused fragments/contains unknown fragments with ref cycle",
  1649      "rule": "NoUnusedFragments",
  1650      "schema": 0,
  1651      "query": "\n      query Foo {\n        human(id: 4) {\n          ...HumanFields1\n        }\n      }\n      query Bar {\n        human(id: 4) {\n          ...HumanFields2\n        }\n      }\n      fragment HumanFields1 on Human {\n        name\n        ...HumanFields3\n      }\n      fragment HumanFields2 on Human {\n        name\n      }\n      fragment HumanFields3 on Human {\n        name\n      }\n      fragment Unused1 on Human {\n        name\n        ...Unused2\n      }\n      fragment Unused2 on Human {\n        name\n        ...Unused1\n      }\n    ",
  1652      "errors": [
  1653        {
  1654          "message": "Fragment \"Unused1\" is never used.",
  1655          "locations": [
  1656            {
  1657              "line": 22,
  1658              "column": 7
  1659            }
  1660          ]
  1661        },
  1662        {
  1663          "message": "Fragment \"Unused2\" is never used.",
  1664          "locations": [
  1665            {
  1666              "line": 26,
  1667              "column": 7
  1668            }
  1669          ]
  1670        }
  1671      ]
  1672    },
  1673    {
  1674      "name": "Validate: No unused fragments/contains unknown and undef fragments",
  1675      "rule": "NoUnusedFragments",
  1676      "schema": 0,
  1677      "query": "\n      query Foo {\n        human(id: 4) {\n          ...bar\n        }\n      }\n      fragment foo on Human {\n        name\n      }\n    ",
  1678      "errors": [
  1679        {
  1680          "message": "Fragment \"foo\" is never used.",
  1681          "locations": [
  1682            {
  1683              "line": 7,
  1684              "column": 7
  1685            }
  1686          ]
  1687        }
  1688      ]
  1689    },
  1690    {
  1691      "name": "Validate: No unused variables/uses all variables",
  1692      "rule": "NoUnusedVariables",
  1693      "schema": 0,
  1694      "query": "\n      query ($a: String, $b: String, $c: String) {\n        field(a: $a, b: $b, c: $c)\n      }\n    ",
  1695      "errors": []
  1696    },
  1697    {
  1698      "name": "Validate: No unused variables/uses all variables deeply",
  1699      "rule": "NoUnusedVariables",
  1700      "schema": 0,
  1701      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        field(a: $a) {\n          field(b: $b) {\n            field(c: $c)\n          }\n        }\n      }\n    ",
  1702      "errors": []
  1703    },
  1704    {
  1705      "name": "Validate: No unused variables/uses all variables deeply in inline fragments",
  1706      "rule": "NoUnusedVariables",
  1707      "schema": 0,
  1708      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        ... on Type {\n          field(a: $a) {\n            field(b: $b) {\n              ... on Type {\n                field(c: $c)\n              }\n            }\n          }\n        }\n      }\n    ",
  1709      "errors": []
  1710    },
  1711    {
  1712      "name": "Validate: No unused variables/uses all variables in fragments",
  1713      "rule": "NoUnusedVariables",
  1714      "schema": 0,
  1715      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field(a: $a) {\n          ...FragB\n        }\n      }\n      fragment FragB on Type {\n        field(b: $b) {\n          ...FragC\n        }\n      }\n      fragment FragC on Type {\n        field(c: $c)\n      }\n    ",
  1716      "errors": []
  1717    },
  1718    {
  1719      "name": "Validate: No unused variables/variable used by fragment in multiple operations",
  1720      "rule": "NoUnusedVariables",
  1721      "schema": 0,
  1722      "query": "\n      query Foo($a: String) {\n        ...FragA\n      }\n      query Bar($b: String) {\n        ...FragB\n      }\n      fragment FragA on Type {\n        field(a: $a)\n      }\n      fragment FragB on Type {\n        field(b: $b)\n      }\n    ",
  1723      "errors": []
  1724    },
  1725    {
  1726      "name": "Validate: No unused variables/variable used by recursive fragment",
  1727      "rule": "NoUnusedVariables",
  1728      "schema": 0,
  1729      "query": "\n      query Foo($a: String) {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field(a: $a) {\n          ...FragA\n        }\n      }\n    ",
  1730      "errors": []
  1731    },
  1732    {
  1733      "name": "Validate: No unused variables/variable not used",
  1734      "rule": "NoUnusedVariables",
  1735      "schema": 0,
  1736      "query": "\n      query ($a: String, $b: String, $c: String) {\n        field(a: $a, b: $b)\n      }\n    ",
  1737      "errors": [
  1738        {
  1739          "message": "Variable \"$c\" is never used.",
  1740          "locations": [
  1741            {
  1742              "line": 2,
  1743              "column": 38
  1744            }
  1745          ]
  1746        }
  1747      ]
  1748    },
  1749    {
  1750      "name": "Validate: No unused variables/multiple variables not used",
  1751      "rule": "NoUnusedVariables",
  1752      "schema": 0,
  1753      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        field(b: $b)\n      }\n    ",
  1754      "errors": [
  1755        {
  1756          "message": "Variable \"$a\" is never used in operation \"Foo\".",
  1757          "locations": [
  1758            {
  1759              "line": 2,
  1760              "column": 17
  1761            }
  1762          ]
  1763        },
  1764        {
  1765          "message": "Variable \"$c\" is never used in operation \"Foo\".",
  1766          "locations": [
  1767            {
  1768              "line": 2,
  1769              "column": 41
  1770            }
  1771          ]
  1772        }
  1773      ]
  1774    },
  1775    {
  1776      "name": "Validate: No unused variables/variable not used in fragments",
  1777      "rule": "NoUnusedVariables",
  1778      "schema": 0,
  1779      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field(a: $a) {\n          ...FragB\n        }\n      }\n      fragment FragB on Type {\n        field(b: $b) {\n          ...FragC\n        }\n      }\n      fragment FragC on Type {\n        field\n      }\n    ",
  1780      "errors": [
  1781        {
  1782          "message": "Variable \"$c\" is never used in operation \"Foo\".",
  1783          "locations": [
  1784            {
  1785              "line": 2,
  1786              "column": 41
  1787            }
  1788          ]
  1789        }
  1790      ]
  1791    },
  1792    {
  1793      "name": "Validate: No unused variables/multiple variables not used in fragments",
  1794      "rule": "NoUnusedVariables",
  1795      "schema": 0,
  1796      "query": "\n      query Foo($a: String, $b: String, $c: String) {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field {\n          ...FragB\n        }\n      }\n      fragment FragB on Type {\n        field(b: $b) {\n          ...FragC\n        }\n      }\n      fragment FragC on Type {\n        field\n      }\n    ",
  1797      "errors": [
  1798        {
  1799          "message": "Variable \"$a\" is never used in operation \"Foo\".",
  1800          "locations": [
  1801            {
  1802              "line": 2,
  1803              "column": 17
  1804            }
  1805          ]
  1806        },
  1807        {
  1808          "message": "Variable \"$c\" is never used in operation \"Foo\".",
  1809          "locations": [
  1810            {
  1811              "line": 2,
  1812              "column": 41
  1813            }
  1814          ]
  1815        }
  1816      ]
  1817    },
  1818    {
  1819      "name": "Validate: No unused variables/variable not used by unreferenced fragment",
  1820      "rule": "NoUnusedVariables",
  1821      "schema": 0,
  1822      "query": "\n      query Foo($b: String) {\n        ...FragA\n      }\n      fragment FragA on Type {\n        field(a: $a)\n      }\n      fragment FragB on Type {\n        field(b: $b)\n      }\n    ",
  1823      "errors": [
  1824        {
  1825          "message": "Variable \"$b\" is never used in operation \"Foo\".",
  1826          "locations": [
  1827            {
  1828              "line": 2,
  1829              "column": 17
  1830            }
  1831          ]
  1832        }
  1833      ]
  1834    },
  1835    {
  1836      "name": "Validate: No unused variables/variable not used by fragment used by other operation",
  1837      "rule": "NoUnusedVariables",
  1838      "schema": 0,
  1839      "query": "\n      query Foo($b: String) {\n        ...FragA\n      }\n      query Bar($a: String) {\n        ...FragB\n      }\n      fragment FragA on Type {\n        field(a: $a)\n      }\n      fragment FragB on Type {\n        field(b: $b)\n      }\n    ",
  1840      "errors": [
  1841        {
  1842          "message": "Variable \"$b\" is never used in operation \"Foo\".",
  1843          "locations": [
  1844            {
  1845              "line": 2,
  1846              "column": 17
  1847            }
  1848          ]
  1849        },
  1850        {
  1851          "message": "Variable \"$a\" is never used in operation \"Bar\".",
  1852          "locations": [
  1853            {
  1854              "line": 5,
  1855              "column": 17
  1856            }
  1857          ]
  1858        }
  1859      ]
  1860    },
  1861    {
  1862      "name": "Validate: Overlapping fields can be merged/unique fields",
  1863      "rule": "OverlappingFieldsCanBeMerged",
  1864      "schema": 0,
  1865      "query": "\n      fragment uniqueFields on Dog {\n        name\n        nickname\n      }\n    ",
  1866      "errors": []
  1867    },
  1868    {
  1869      "name": "Validate: Overlapping fields can be merged/identical fields",
  1870      "rule": "OverlappingFieldsCanBeMerged",
  1871      "schema": 0,
  1872      "query": "\n      fragment mergeIdenticalFields on Dog {\n        name\n        name\n      }\n    ",
  1873      "errors": []
  1874    },
  1875    {
  1876      "name": "Validate: Overlapping fields can be merged/identical fields with identical args",
  1877      "rule": "OverlappingFieldsCanBeMerged",
  1878      "schema": 0,
  1879      "query": "\n      fragment mergeIdenticalFieldsWithIdenticalArgs on Dog {\n        doesKnowCommand(dogCommand: SIT)\n        doesKnowCommand(dogCommand: SIT)\n      }\n    ",
  1880      "errors": []
  1881    },
  1882    {
  1883      "name": "Validate: Overlapping fields can be merged/identical fields with identical directives",
  1884      "rule": "OverlappingFieldsCanBeMerged",
  1885      "schema": 0,
  1886      "query": "\n      fragment mergeSameFieldsWithSameDirectives on Dog {\n        name @include(if: true)\n        name @include(if: true)\n      }\n    ",
  1887      "errors": []
  1888    },
  1889    {
  1890      "name": "Validate: Overlapping fields can be merged/different args with different aliases",
  1891      "rule": "OverlappingFieldsCanBeMerged",
  1892      "schema": 0,
  1893      "query": "\n      fragment differentArgsWithDifferentAliases on Dog {\n        knowsSit: doesKnowCommand(dogCommand: SIT)\n        knowsDown: doesKnowCommand(dogCommand: DOWN)\n      }\n    ",
  1894      "errors": []
  1895    },
  1896    {
  1897      "name": "Validate: Overlapping fields can be merged/different directives with different aliases",
  1898      "rule": "OverlappingFieldsCanBeMerged",
  1899      "schema": 0,
  1900      "query": "\n      fragment differentDirectivesWithDifferentAliases on Dog {\n        nameIfTrue: name @include(if: true)\n        nameIfFalse: name @include(if: false)\n      }\n    ",
  1901      "errors": []
  1902    },
  1903    {
  1904      "name": "Validate: Overlapping fields can be merged/different skip/include directives accepted",
  1905      "rule": "OverlappingFieldsCanBeMerged",
  1906      "schema": 0,
  1907      "query": "\n      fragment differentDirectivesWithDifferentAliases on Dog {\n        name @include(if: true)\n        name @include(if: false)\n      }\n    ",
  1908      "errors": []
  1909    },
  1910    {
  1911      "name": "Validate: Overlapping fields can be merged/Same aliases with different field targets",
  1912      "rule": "OverlappingFieldsCanBeMerged",
  1913      "schema": 0,
  1914      "query": "\n      fragment sameAliasesWithDifferentFieldTargets on Dog {\n        fido: name\n        fido: nickname\n      }\n    ",
  1915      "errors": [
  1916        {
  1917          "message": "Fields \"fido\" conflict because name and nickname are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  1918          "locations": [
  1919            {
  1920              "line": 3,
  1921              "column": 9
  1922            },
  1923            {
  1924              "line": 4,
  1925              "column": 9
  1926            }
  1927          ]
  1928        }
  1929      ]
  1930    },
  1931    {
  1932      "name": "Validate: Overlapping fields can be merged/Same aliases allowed on non-overlapping fields",
  1933      "rule": "OverlappingFieldsCanBeMerged",
  1934      "schema": 0,
  1935      "query": "\n      fragment sameAliasesWithDifferentFieldTargets on Pet {\n        ... on Dog {\n          name\n        }\n        ... on Cat {\n          name: nickname\n        }\n      }\n    ",
  1936      "errors": []
  1937    },
  1938    {
  1939      "name": "Validate: Overlapping fields can be merged/Alias masking direct field access",
  1940      "rule": "OverlappingFieldsCanBeMerged",
  1941      "schema": 0,
  1942      "query": "\n      fragment aliasMaskingDirectFieldAccess on Dog {\n        name: nickname\n        name\n      }\n    ",
  1943      "errors": [
  1944        {
  1945          "message": "Fields \"name\" conflict because nickname and name are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  1946          "locations": [
  1947            {
  1948              "line": 3,
  1949              "column": 9
  1950            },
  1951            {
  1952              "line": 4,
  1953              "column": 9
  1954            }
  1955          ]
  1956        }
  1957      ]
  1958    },
  1959    {
  1960      "name": "Validate: Overlapping fields can be merged/different args, second adds an argument",
  1961      "rule": "OverlappingFieldsCanBeMerged",
  1962      "schema": 0,
  1963      "query": "\n      fragment conflictingArgs on Dog {\n        doesKnowCommand\n        doesKnowCommand(dogCommand: HEEL)\n      }\n    ",
  1964      "errors": [
  1965        {
  1966          "message": "Fields \"doesKnowCommand\" conflict because they have differing arguments. Use different aliases on the fields to fetch both if this was intentional.",
  1967          "locations": [
  1968            {
  1969              "line": 3,
  1970              "column": 9
  1971            },
  1972            {
  1973              "line": 4,
  1974              "column": 9
  1975            }
  1976          ]
  1977        }
  1978      ]
  1979    },
  1980    {
  1981      "name": "Validate: Overlapping fields can be merged/different args, second missing an argument",
  1982      "rule": "OverlappingFieldsCanBeMerged",
  1983      "schema": 0,
  1984      "query": "\n      fragment conflictingArgs on Dog {\n        doesKnowCommand(dogCommand: SIT)\n        doesKnowCommand\n      }\n    ",
  1985      "errors": [
  1986        {
  1987          "message": "Fields \"doesKnowCommand\" conflict because they have differing arguments. Use different aliases on the fields to fetch both if this was intentional.",
  1988          "locations": [
  1989            {
  1990              "line": 3,
  1991              "column": 9
  1992            },
  1993            {
  1994              "line": 4,
  1995              "column": 9
  1996            }
  1997          ]
  1998        }
  1999      ]
  2000    },
  2001    {
  2002      "name": "Validate: Overlapping fields can be merged/conflicting args",
  2003      "rule": "OverlappingFieldsCanBeMerged",
  2004      "schema": 0,
  2005      "query": "\n      fragment conflictingArgs on Dog {\n        doesKnowCommand(dogCommand: SIT)\n        doesKnowCommand(dogCommand: HEEL)\n      }\n    ",
  2006      "errors": [
  2007        {
  2008          "message": "Fields \"doesKnowCommand\" conflict because they have differing arguments. Use different aliases on the fields to fetch both if this was intentional.",
  2009          "locations": [
  2010            {
  2011              "line": 3,
  2012              "column": 9
  2013            },
  2014            {
  2015              "line": 4,
  2016              "column": 9
  2017            }
  2018          ]
  2019        }
  2020      ]
  2021    },
  2022    {
  2023      "name": "Validate: Overlapping fields can be merged/allows different args where no conflict is possible",
  2024      "rule": "OverlappingFieldsCanBeMerged",
  2025      "schema": 0,
  2026      "query": "\n      fragment conflictingArgs on Pet {\n        ... on Dog {\n          name(surname: true)\n        }\n        ... on Cat {\n          name\n        }\n      }\n    ",
  2027      "errors": []
  2028    },
  2029    {
  2030      "name": "Validate: Overlapping fields can be merged/encounters conflict in fragments",
  2031      "rule": "OverlappingFieldsCanBeMerged",
  2032      "schema": 0,
  2033      "query": "\n      {\n        ...A\n        ...B\n      }\n      fragment A on Type {\n        x: a\n      }\n      fragment B on Type {\n        x: b\n      }\n    ",
  2034      "errors": [
  2035        {
  2036          "message": "Fields \"x\" conflict because a and b are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2037          "locations": [
  2038            {
  2039              "line": 7,
  2040              "column": 9
  2041            },
  2042            {
  2043              "line": 10,
  2044              "column": 9
  2045            }
  2046          ]
  2047        }
  2048      ]
  2049    },
  2050    {
  2051      "name": "Validate: Overlapping fields can be merged/reports each conflict once",
  2052      "rule": "OverlappingFieldsCanBeMerged",
  2053      "schema": 0,
  2054      "query": "\n      {\n        f1 {\n          ...A\n          ...B\n        }\n        f2 {\n          ...B\n          ...A\n        }\n        f3 {\n          ...A\n          ...B\n          x: c\n        }\n      }\n      fragment A on Type {\n        x: a\n      }\n      fragment B on Type {\n        x: b\n      }\n    ",
  2055      "errors": [
  2056        {
  2057          "message": "Fields \"x\" conflict because a and b are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2058          "locations": [
  2059            {
  2060              "line": 18,
  2061              "column": 9
  2062            },
  2063            {
  2064              "line": 21,
  2065              "column": 9
  2066            }
  2067          ]
  2068        },
  2069        {
  2070          "message": "Fields \"x\" conflict because c and a are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2071          "locations": [
  2072            {
  2073              "line": 14,
  2074              "column": 11
  2075            },
  2076            {
  2077              "line": 18,
  2078              "column": 9
  2079            }
  2080          ]
  2081        },
  2082        {
  2083          "message": "Fields \"x\" conflict because c and b are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2084          "locations": [
  2085            {
  2086              "line": 14,
  2087              "column": 11
  2088            },
  2089            {
  2090              "line": 21,
  2091              "column": 9
  2092            }
  2093          ]
  2094        }
  2095      ]
  2096    },
  2097    {
  2098      "name": "Validate: Overlapping fields can be merged/deep conflict",
  2099      "rule": "OverlappingFieldsCanBeMerged",
  2100      "schema": 0,
  2101      "query": "\n      {\n        field {\n          x: a\n        },\n        field {\n          x: b\n        }\n      }\n    ",
  2102      "errors": [
  2103        {
  2104          "message": "Fields \"field\" conflict because subfields \"x\" conflict because a and b are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2105          "locations": [
  2106            {
  2107              "line": 3,
  2108              "column": 9
  2109            },
  2110            {
  2111              "line": 4,
  2112              "column": 11
  2113            },
  2114            {
  2115              "line": 6,
  2116              "column": 9
  2117            },
  2118            {
  2119              "line": 7,
  2120              "column": 11
  2121            }
  2122          ]
  2123        }
  2124      ]
  2125    },
  2126    {
  2127      "name": "Validate: Overlapping fields can be merged/deep conflict with multiple issues",
  2128      "rule": "OverlappingFieldsCanBeMerged",
  2129      "schema": 0,
  2130      "query": "\n      {\n        field {\n          x: a\n          y: c\n        },\n        field {\n          x: b\n          y: d\n        }\n      }\n    ",
  2131      "errors": [
  2132        {
  2133          "message": "Fields \"field\" conflict because subfields \"x\" conflict because a and b are different fields and subfields \"y\" conflict because c and d are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2134          "locations": [
  2135            {
  2136              "line": 3,
  2137              "column": 9
  2138            },
  2139            {
  2140              "line": 4,
  2141              "column": 11
  2142            },
  2143            {
  2144              "line": 5,
  2145              "column": 11
  2146            },
  2147            {
  2148              "line": 7,
  2149              "column": 9
  2150            },
  2151            {
  2152              "line": 8,
  2153              "column": 11
  2154            },
  2155            {
  2156              "line": 9,
  2157              "column": 11
  2158            }
  2159          ]
  2160        }
  2161      ]
  2162    },
  2163    {
  2164      "name": "Validate: Overlapping fields can be merged/very deep conflict",
  2165      "rule": "OverlappingFieldsCanBeMerged",
  2166      "schema": 0,
  2167      "query": "\n      {\n        field {\n          deepField {\n            x: a\n          }\n        },\n        field {\n          deepField {\n            x: b\n          }\n        }\n      }\n    ",
  2168      "errors": [
  2169        {
  2170          "message": "Fields \"field\" conflict because subfields \"deepField\" conflict because subfields \"x\" conflict because a and b are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2171          "locations": [
  2172            {
  2173              "line": 3,
  2174              "column": 9
  2175            },
  2176            {
  2177              "line": 4,
  2178              "column": 11
  2179            },
  2180            {
  2181              "line": 5,
  2182              "column": 13
  2183            },
  2184            {
  2185              "line": 8,
  2186              "column": 9
  2187            },
  2188            {
  2189              "line": 9,
  2190              "column": 11
  2191            },
  2192            {
  2193              "line": 10,
  2194              "column": 13
  2195            }
  2196          ]
  2197        }
  2198      ]
  2199    },
  2200    {
  2201      "name": "Validate: Overlapping fields can be merged/reports deep conflict to nearest common ancestor",
  2202      "rule": "OverlappingFieldsCanBeMerged",
  2203      "schema": 0,
  2204      "query": "\n      {\n        field {\n          deepField {\n            x: a\n          }\n          deepField {\n            x: b\n          }\n        },\n        field {\n          deepField {\n            y\n          }\n        }\n      }\n    ",
  2205      "errors": [
  2206        {
  2207          "message": "Fields \"deepField\" conflict because subfields \"x\" conflict because a and b are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2208          "locations": [
  2209            {
  2210              "line": 4,
  2211              "column": 11
  2212            },
  2213            {
  2214              "line": 5,
  2215              "column": 13
  2216            },
  2217            {
  2218              "line": 7,
  2219              "column": 11
  2220            },
  2221            {
  2222              "line": 8,
  2223              "column": 13
  2224            }
  2225          ]
  2226        }
  2227      ]
  2228    },
  2229    {
  2230      "name": "Validate: Overlapping fields can be merged/reports deep conflict to nearest common ancestor in fragments",
  2231      "rule": "OverlappingFieldsCanBeMerged",
  2232      "schema": 0,
  2233      "query": "\n      {\n        field {\n          ...F\n        }\n        field {\n          ...F\n        }\n      }\n      fragment F on T {\n        deepField {\n          deeperField {\n            x: a\n          }\n          deeperField {\n            x: b\n          }\n        },\n        deepField {\n          deeperField {\n            y\n          }\n        }\n      }\n    ",
  2234      "errors": [
  2235        {
  2236          "message": "Fields \"deeperField\" conflict because subfields \"x\" conflict because a and b are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2237          "locations": [
  2238            {
  2239              "line": 12,
  2240              "column": 11
  2241            },
  2242            {
  2243              "line": 13,
  2244              "column": 13
  2245            },
  2246            {
  2247              "line": 15,
  2248              "column": 11
  2249            },
  2250            {
  2251              "line": 16,
  2252              "column": 13
  2253            }
  2254          ]
  2255        }
  2256      ]
  2257    },
  2258    {
  2259      "name": "Validate: Overlapping fields can be merged/reports deep conflict in nested fragments",
  2260      "rule": "OverlappingFieldsCanBeMerged",
  2261      "schema": 0,
  2262      "query": "\n      {\n        field {\n          ...F\n        }\n        field {\n          ...I\n        }\n      }\n      fragment F on T {\n        x: a\n        ...G\n      }\n      fragment G on T {\n        y: c\n      }\n      fragment I on T {\n        y: d\n        ...J\n      }\n      fragment J on T {\n        x: b\n      }\n    ",
  2263      "errors": [
  2264        {
  2265          "message": "Fields \"field\" conflict because subfields \"x\" conflict because a and b are different fields and subfields \"y\" conflict because c and d are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2266          "locations": [
  2267            {
  2268              "line": 3,
  2269              "column": 9
  2270            },
  2271            {
  2272              "line": 11,
  2273              "column": 9
  2274            },
  2275            {
  2276              "line": 15,
  2277              "column": 9
  2278            },
  2279            {
  2280              "line": 6,
  2281              "column": 9
  2282            },
  2283            {
  2284              "line": 22,
  2285              "column": 9
  2286            },
  2287            {
  2288              "line": 18,
  2289              "column": 9
  2290            }
  2291          ]
  2292        }
  2293      ]
  2294    },
  2295    {
  2296      "name": "Validate: Overlapping fields can be merged/ignores unknown fragments",
  2297      "rule": "OverlappingFieldsCanBeMerged",
  2298      "schema": 0,
  2299      "query": "\n    {\n      field\n      ...Unknown\n      ...Known\n    }\n\n    fragment Known on T {\n      field\n      ...OtherUnknown\n    }\n    ",
  2300      "errors": []
  2301    },
  2302    {
  2303      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/conflicting return types which potentially overlap",
  2304      "rule": "OverlappingFieldsCanBeMerged",
  2305      "schema": 1,
  2306      "query": "\n        {\n          someBox {\n            ...on IntBox {\n              scalar\n            }\n            ...on NonNullStringBox1 {\n              scalar\n            }\n          }\n        }\n      ",
  2307      "errors": [
  2308        {
  2309          "message": "Fields \"scalar\" conflict because they return conflicting types Int and String!. Use different aliases on the fields to fetch both if this was intentional.",
  2310          "locations": [
  2311            {
  2312              "line": 5,
  2313              "column": 15
  2314            },
  2315            {
  2316              "line": 8,
  2317              "column": 15
  2318            }
  2319          ]
  2320        }
  2321      ]
  2322    },
  2323    {
  2324      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/compatible return shapes on different return types",
  2325      "rule": "OverlappingFieldsCanBeMerged",
  2326      "schema": 1,
  2327      "query": "\n      {\n        someBox {\n          ... on SomeBox {\n            deepBox {\n              unrelatedField\n            }\n          }\n          ... on StringBox {\n            deepBox {\n              unrelatedField\n            }\n          }\n        }\n      }\n      ",
  2328      "errors": []
  2329    },
  2330    {
  2331      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/disallows differing return types despite no overlap",
  2332      "rule": "OverlappingFieldsCanBeMerged",
  2333      "schema": 1,
  2334      "query": "\n        {\n          someBox {\n            ... on IntBox {\n              scalar\n            }\n            ... on StringBox {\n              scalar\n            }\n          }\n        }\n      ",
  2335      "errors": [
  2336        {
  2337          "message": "Fields \"scalar\" conflict because they return conflicting types Int and String. Use different aliases on the fields to fetch both if this was intentional.",
  2338          "locations": [
  2339            {
  2340              "line": 5,
  2341              "column": 15
  2342            },
  2343            {
  2344              "line": 8,
  2345              "column": 15
  2346            }
  2347          ]
  2348        }
  2349      ]
  2350    },
  2351    {
  2352      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/disallows differing return type nullability despite no overlap",
  2353      "rule": "OverlappingFieldsCanBeMerged",
  2354      "schema": 1,
  2355      "query": "\n        {\n          someBox {\n            ... on NonNullStringBox1 {\n              scalar\n            }\n            ... on StringBox {\n              scalar\n            }\n          }\n        }\n      ",
  2356      "errors": [
  2357        {
  2358          "message": "Fields \"scalar\" conflict because they return conflicting types String! and String. Use different aliases on the fields to fetch both if this was intentional.",
  2359          "locations": [
  2360            {
  2361              "line": 5,
  2362              "column": 15
  2363            },
  2364            {
  2365              "line": 8,
  2366              "column": 15
  2367            }
  2368          ]
  2369        }
  2370      ]
  2371    },
  2372    {
  2373      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/disallows differing return type list despite no overlap",
  2374      "rule": "OverlappingFieldsCanBeMerged",
  2375      "schema": 1,
  2376      "query": "\n        {\n          someBox {\n            ... on IntBox {\n              box: listStringBox {\n                scalar\n              }\n            }\n            ... on StringBox {\n              box: stringBox {\n                scalar\n              }\n            }\n          }\n        }\n      ",
  2377      "errors": [
  2378        {
  2379          "message": "Fields \"box\" conflict because they return conflicting types [StringBox] and StringBox. Use different aliases on the fields to fetch both if this was intentional.",
  2380          "locations": [
  2381            {
  2382              "line": 5,
  2383              "column": 15
  2384            },
  2385            {
  2386              "line": 10,
  2387              "column": 15
  2388            }
  2389          ]
  2390        }
  2391      ]
  2392    },
  2393    {
  2394      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/disallows differing return type list despite no overlap",
  2395      "rule": "OverlappingFieldsCanBeMerged",
  2396      "schema": 1,
  2397      "query": "\n        {\n          someBox {\n            ... on IntBox {\n              box: stringBox {\n                scalar\n              }\n            }\n            ... on StringBox {\n              box: listStringBox {\n                scalar\n              }\n            }\n          }\n        }\n      ",
  2398      "errors": [
  2399        {
  2400          "message": "Fields \"box\" conflict because they return conflicting types StringBox and [StringBox]. Use different aliases on the fields to fetch both if this was intentional.",
  2401          "locations": [
  2402            {
  2403              "line": 5,
  2404              "column": 15
  2405            },
  2406            {
  2407              "line": 10,
  2408              "column": 15
  2409            }
  2410          ]
  2411        }
  2412      ]
  2413    },
  2414    {
  2415      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/disallows differing deep return types despite no overlap",
  2416      "rule": "OverlappingFieldsCanBeMerged",
  2417      "schema": 1,
  2418      "query": "\n        {\n          someBox {\n            ... on IntBox {\n              box: stringBox {\n                scalar\n              }\n            }\n            ... on StringBox {\n              box: intBox {\n                scalar\n              }\n            }\n          }\n        }\n      ",
  2419      "errors": [
  2420        {
  2421          "message": "Fields \"box\" conflict because subfields \"scalar\" conflict because they return conflicting types String and Int. Use different aliases on the fields to fetch both if this was intentional.",
  2422          "locations": [
  2423            {
  2424              "line": 5,
  2425              "column": 15
  2426            },
  2427            {
  2428              "line": 6,
  2429              "column": 17
  2430            },
  2431            {
  2432              "line": 10,
  2433              "column": 15
  2434            },
  2435            {
  2436              "line": 11,
  2437              "column": 17
  2438            }
  2439          ]
  2440        }
  2441      ]
  2442    },
  2443    {
  2444      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/allows non-conflicting overlaping types",
  2445      "rule": "OverlappingFieldsCanBeMerged",
  2446      "schema": 1,
  2447      "query": "\n        {\n          someBox {\n            ... on IntBox {\n              scalar: unrelatedField\n            }\n            ... on StringBox {\n              scalar\n            }\n          }\n        }\n      ",
  2448      "errors": []
  2449    },
  2450    {
  2451      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/same wrapped scalar return types",
  2452      "rule": "OverlappingFieldsCanBeMerged",
  2453      "schema": 1,
  2454      "query": "\n        {\n          someBox {\n            ...on NonNullStringBox1 {\n              scalar\n            }\n            ...on NonNullStringBox2 {\n              scalar\n            }\n          }\n        }\n      ",
  2455      "errors": []
  2456    },
  2457    {
  2458      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/allows inline typeless fragments",
  2459      "rule": "OverlappingFieldsCanBeMerged",
  2460      "schema": 1,
  2461      "query": "\n        {\n          a\n          ... {\n            a\n          }\n        }\n      ",
  2462      "errors": []
  2463    },
  2464    {
  2465      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/compares deep types including list",
  2466      "rule": "OverlappingFieldsCanBeMerged",
  2467      "schema": 1,
  2468      "query": "\n        {\n          connection {\n            ...edgeID\n            edges {\n              node {\n                id: name\n              }\n            }\n          }\n        }\n\n        fragment edgeID on Connection {\n          edges {\n            node {\n              id\n            }\n          }\n        }\n      ",
  2469      "errors": [
  2470        {
  2471          "message": "Fields \"edges\" conflict because subfields \"node\" conflict because subfields \"id\" conflict because name and id are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2472          "locations": [
  2473            {
  2474              "line": 5,
  2475              "column": 13
  2476            },
  2477            {
  2478              "line": 6,
  2479              "column": 15
  2480            },
  2481            {
  2482              "line": 7,
  2483              "column": 17
  2484            },
  2485            {
  2486              "line": 14,
  2487              "column": 11
  2488            },
  2489            {
  2490              "line": 15,
  2491              "column": 13
  2492            },
  2493            {
  2494              "line": 16,
  2495              "column": 15
  2496            }
  2497          ]
  2498        }
  2499      ]
  2500    },
  2501    {
  2502      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/ignores unknown types",
  2503      "rule": "OverlappingFieldsCanBeMerged",
  2504      "schema": 1,
  2505      "query": "\n        {\n          someBox {\n            ...on UnknownType {\n              scalar\n            }\n            ...on NonNullStringBox2 {\n              scalar\n            }\n          }\n        }\n      ",
  2506      "errors": []
  2507    },
  2508    {
  2509      "name": "Validate: Overlapping fields can be merged/return types must be unambiguous/works for field names that are JS keywords",
  2510      "rule": "OverlappingFieldsCanBeMerged",
  2511      "schema": 2,
  2512      "query": "{\n          foo {\n            constructor\n          }\n        }",
  2513      "errors": []
  2514    },
  2515    {
  2516      "name": "Validate: Overlapping fields can be merged/does not infinite loop on recursive fragment",
  2517      "rule": "OverlappingFieldsCanBeMerged",
  2518      "schema": 0,
  2519      "query": "\n      fragment fragA on Human { name, relatives { name, ...fragA } }\n    ",
  2520      "errors": []
  2521    },
  2522    {
  2523      "name": "Validate: Overlapping fields can be merged/does not infinite loop on immediately recursive fragment",
  2524      "rule": "OverlappingFieldsCanBeMerged",
  2525      "schema": 0,
  2526      "query": "\n      fragment fragA on Human { name, ...fragA }\n    ",
  2527      "errors": []
  2528    },
  2529    {
  2530      "name": "Validate: Overlapping fields can be merged/does not infinite loop on transitively recursive fragment",
  2531      "rule": "OverlappingFieldsCanBeMerged",
  2532      "schema": 0,
  2533      "query": "\n      fragment fragA on Human { name, ...fragB }\n      fragment fragB on Human { name, ...fragC }\n      fragment fragC on Human { name, ...fragA }\n    ",
  2534      "errors": []
  2535    },
  2536    {
  2537      "name": "Validate: Overlapping fields can be merged/finds invalid case even with immediately recursive fragment",
  2538      "rule": "OverlappingFieldsCanBeMerged",
  2539      "schema": 0,
  2540      "query": "\n      fragment sameAliasesWithDifferentFieldTargets on Dog {\n        ...sameAliasesWithDifferentFieldTargets\n        fido: name\n        fido: nickname\n      }\n    ",
  2541      "errors": [
  2542        {
  2543          "message": "Fields \"fido\" conflict because name and nickname are different fields. Use different aliases on the fields to fetch both if this was intentional.",
  2544          "locations": [
  2545            {
  2546              "line": 4,
  2547              "column": 9
  2548            },
  2549            {
  2550              "line": 5,
  2551              "column": 9
  2552            }
  2553          ]
  2554        }
  2555      ]
  2556    },
  2557    {
  2558      "name": "Validate: Possible fragment spreads/of the same object",
  2559      "rule": "PossibleFragmentSpreads",
  2560      "schema": 0,
  2561      "query": "\n      fragment objectWithinObject on Dog { ...dogFragment }\n      fragment dogFragment on Dog { barkVolume }\n    ",
  2562      "errors": []
  2563    },
  2564    {
  2565      "name": "Validate: Possible fragment spreads/of the same object with inline fragment",
  2566      "rule": "PossibleFragmentSpreads",
  2567      "schema": 0,
  2568      "query": "\n      fragment objectWithinObjectAnon on Dog { ... on Dog { barkVolume } }\n    ",
  2569      "errors": []
  2570    },
  2571    {
  2572      "name": "Validate: Possible fragment spreads/object into an implemented interface",
  2573      "rule": "PossibleFragmentSpreads",
  2574      "schema": 0,
  2575      "query": "\n      fragment objectWithinInterface on Pet { ...dogFragment }\n      fragment dogFragment on Dog { barkVolume }\n    ",
  2576      "errors": []
  2577    },
  2578    {
  2579      "name": "Validate: Possible fragment spreads/object into containing union",
  2580      "rule": "PossibleFragmentSpreads",
  2581      "schema": 0,
  2582      "query": "\n      fragment objectWithinUnion on CatOrDog { ...dogFragment }\n      fragment dogFragment on Dog { barkVolume }\n    ",
  2583      "errors": []
  2584    },
  2585    {
  2586      "name": "Validate: Possible fragment spreads/union into contained object",
  2587      "rule": "PossibleFragmentSpreads",
  2588      "schema": 0,
  2589      "query": "\n      fragment unionWithinObject on Dog { ...catOrDogFragment }\n      fragment catOrDogFragment on CatOrDog { __typename }\n    ",
  2590      "errors": []
  2591    },
  2592    {
  2593      "name": "Validate: Possible fragment spreads/union into overlapping interface",
  2594      "rule": "PossibleFragmentSpreads",
  2595      "schema": 0,
  2596      "query": "\n      fragment unionWithinInterface on Pet { ...catOrDogFragment }\n      fragment catOrDogFragment on CatOrDog { __typename }\n    ",
  2597      "errors": []
  2598    },
  2599    {
  2600      "name": "Validate: Possible fragment spreads/union into overlapping union",
  2601      "rule": "PossibleFragmentSpreads",
  2602      "schema": 0,
  2603      "query": "\n      fragment unionWithinUnion on DogOrHuman { ...catOrDogFragment }\n      fragment catOrDogFragment on CatOrDog { __typename }\n    ",
  2604      "errors": []
  2605    },
  2606    {
  2607      "name": "Validate: Possible fragment spreads/interface into implemented object",
  2608      "rule": "PossibleFragmentSpreads",
  2609      "schema": 0,
  2610      "query": "\n      fragment interfaceWithinObject on Dog { ...petFragment }\n      fragment petFragment on Pet { name }\n    ",
  2611      "errors": []
  2612    },
  2613    {
  2614      "name": "Validate: Possible fragment spreads/interface into overlapping interface",
  2615      "rule": "PossibleFragmentSpreads",
  2616      "schema": 0,
  2617      "query": "\n      fragment interfaceWithinInterface on Pet { ...beingFragment }\n      fragment beingFragment on Being { name }\n    ",
  2618      "errors": []
  2619    },
  2620    {
  2621      "name": "Validate: Possible fragment spreads/interface into overlapping interface in inline fragment",
  2622      "rule": "PossibleFragmentSpreads",
  2623      "schema": 0,
  2624      "query": "\n      fragment interfaceWithinInterface on Pet { ... on Being { name } }\n    ",
  2625      "errors": []
  2626    },
  2627    {
  2628      "name": "Validate: Possible fragment spreads/interface into overlapping union",
  2629      "rule": "PossibleFragmentSpreads",
  2630      "schema": 0,
  2631      "query": "\n      fragment interfaceWithinUnion on CatOrDog { ...petFragment }\n      fragment petFragment on Pet { name }\n    ",
  2632      "errors": []
  2633    },
  2634    {
  2635      "name": "Validate: Possible fragment spreads/ignores incorrect type (caught by FragmentsOnCompositeTypes)",
  2636      "rule": "PossibleFragmentSpreads",
  2637      "schema": 0,
  2638      "query": "\n      fragment petFragment on Pet { ...badInADifferentWay }\n      fragment badInADifferentWay on String { name }\n    ",
  2639      "errors": []
  2640    },
  2641    {
  2642      "name": "Validate: Possible fragment spreads/different object into object",
  2643      "rule": "PossibleFragmentSpreads",
  2644      "schema": 0,
  2645      "query": "\n      fragment invalidObjectWithinObject on Cat { ...dogFragment }\n      fragment dogFragment on Dog { barkVolume }\n    ",
  2646      "errors": [
  2647        {
  2648          "message": "Fragment \"dogFragment\" cannot be spread here as objects of type \"Cat\" can never be of type \"Dog\".",
  2649          "locations": [
  2650            {
  2651              "line": 2,
  2652              "column": 51
  2653            }
  2654          ]
  2655        }
  2656      ]
  2657    },
  2658    {
  2659      "name": "Validate: Possible fragment spreads/different object into object in inline fragment",
  2660      "rule": "PossibleFragmentSpreads",
  2661      "schema": 0,
  2662      "query": "\n      fragment invalidObjectWithinObjectAnon on Cat {\n        ... on Dog { barkVolume }\n      }\n    ",
  2663      "errors": [
  2664        {
  2665          "message": "Fragment cannot be spread here as objects of type \"Cat\" can never be of type \"Dog\".",
  2666          "locations": [
  2667            {
  2668              "line": 3,
  2669              "column": 9
  2670            }
  2671          ]
  2672        }
  2673      ]
  2674    },
  2675    {
  2676      "name": "Validate: Possible fragment spreads/object into not implementing interface",
  2677      "rule": "PossibleFragmentSpreads",
  2678      "schema": 0,
  2679      "query": "\n      fragment invalidObjectWithinInterface on Pet { ...humanFragment }\n      fragment humanFragment on Human { pets { name } }\n    ",
  2680      "errors": [
  2681        {
  2682          "message": "Fragment \"humanFragment\" cannot be spread here as objects of type \"Pet\" can never be of type \"Human\".",
  2683          "locations": [
  2684            {
  2685              "line": 2,
  2686              "column": 54
  2687            }
  2688          ]
  2689        }
  2690      ]
  2691    },
  2692    {
  2693      "name": "Validate: Possible fragment spreads/object into not containing union",
  2694      "rule": "PossibleFragmentSpreads",
  2695      "schema": 0,
  2696      "query": "\n      fragment invalidObjectWithinUnion on CatOrDog { ...humanFragment }\n      fragment humanFragment on Human { pets { name } }\n    ",
  2697      "errors": [
  2698        {
  2699          "message": "Fragment \"humanFragment\" cannot be spread here as objects of type \"CatOrDog\" can never be of type \"Human\".",
  2700          "locations": [
  2701            {
  2702              "line": 2,
  2703              "column": 55
  2704            }
  2705          ]
  2706        }
  2707      ]
  2708    },
  2709    {
  2710      "name": "Validate: Possible fragment spreads/union into not contained object",
  2711      "rule": "PossibleFragmentSpreads",
  2712      "schema": 0,
  2713      "query": "\n      fragment invalidUnionWithinObject on Human { ...catOrDogFragment }\n      fragment catOrDogFragment on CatOrDog { __typename }\n    ",
  2714      "errors": [
  2715        {
  2716          "message": "Fragment \"catOrDogFragment\" cannot be spread here as objects of type \"Human\" can never be of type \"CatOrDog\".",
  2717          "locations": [
  2718            {
  2719              "line": 2,
  2720              "column": 52
  2721            }
  2722          ]
  2723        }
  2724      ]
  2725    },
  2726    {
  2727      "name": "Validate: Possible fragment spreads/union into non overlapping interface",
  2728      "rule": "PossibleFragmentSpreads",
  2729      "schema": 0,
  2730      "query": "\n      fragment invalidUnionWithinInterface on Pet { ...humanOrAlienFragment }\n      fragment humanOrAlienFragment on HumanOrAlien { __typename }\n    ",
  2731      "errors": [
  2732        {
  2733          "message": "Fragment \"humanOrAlienFragment\" cannot be spread here as objects of type \"Pet\" can never be of type \"HumanOrAlien\".",
  2734          "locations": [
  2735            {
  2736              "line": 2,
  2737              "column": 53
  2738            }
  2739          ]
  2740        }
  2741      ]
  2742    },
  2743    {
  2744      "name": "Validate: Possible fragment spreads/union into non overlapping union",
  2745      "rule": "PossibleFragmentSpreads",
  2746      "schema": 0,
  2747      "query": "\n      fragment invalidUnionWithinUnion on CatOrDog { ...humanOrAlienFragment }\n      fragment humanOrAlienFragment on HumanOrAlien { __typename }\n    ",
  2748      "errors": [
  2749        {
  2750          "message": "Fragment \"humanOrAlienFragment\" cannot be spread here as objects of type \"CatOrDog\" can never be of type \"HumanOrAlien\".",
  2751          "locations": [
  2752            {
  2753              "line": 2,
  2754              "column": 54
  2755            }
  2756          ]
  2757        }
  2758      ]
  2759    },
  2760    {
  2761      "name": "Validate: Possible fragment spreads/interface into non implementing object",
  2762      "rule": "PossibleFragmentSpreads",
  2763      "schema": 0,
  2764      "query": "\n      fragment invalidInterfaceWithinObject on Cat { ...intelligentFragment }\n      fragment intelligentFragment on Intelligent { iq }\n    ",
  2765      "errors": [
  2766        {
  2767          "message": "Fragment \"intelligentFragment\" cannot be spread here as objects of type \"Cat\" can never be of type \"Intelligent\".",
  2768          "locations": [
  2769            {
  2770              "line": 2,
  2771              "column": 54
  2772            }
  2773          ]
  2774        }
  2775      ]
  2776    },
  2777    {
  2778      "name": "Validate: Possible fragment spreads/interface into non overlapping interface",
  2779      "rule": "PossibleFragmentSpreads",
  2780      "schema": 0,
  2781      "query": "\n      fragment invalidInterfaceWithinInterface on Pet {\n        ...intelligentFragment\n      }\n      fragment intelligentFragment on Intelligent { iq }\n    ",
  2782      "errors": [
  2783        {
  2784          "message": "Fragment \"intelligentFragment\" cannot be spread here as objects of type \"Pet\" can never be of type \"Intelligent\".",
  2785          "locations": [
  2786            {
  2787              "line": 3,
  2788              "column": 9
  2789            }
  2790          ]
  2791        }
  2792      ]
  2793    },
  2794    {
  2795      "name": "Validate: Possible fragment spreads/interface into non overlapping interface in inline fragment",
  2796      "rule": "PossibleFragmentSpreads",
  2797      "schema": 0,
  2798      "query": "\n      fragment invalidInterfaceWithinInterfaceAnon on Pet {\n        ...on Intelligent { iq }\n      }\n    ",
  2799      "errors": [
  2800        {
  2801          "message": "Fragment cannot be spread here as objects of type \"Pet\" can never be of type \"Intelligent\".",
  2802          "locations": [
  2803            {
  2804              "line": 3,
  2805              "column": 9
  2806            }
  2807          ]
  2808        }
  2809      ]
  2810    },
  2811    {
  2812      "name": "Validate: Possible fragment spreads/interface into non overlapping union",
  2813      "rule": "PossibleFragmentSpreads",
  2814      "schema": 0,
  2815      "query": "\n      fragment invalidInterfaceWithinUnion on HumanOrAlien { ...petFragment }\n      fragment petFragment on Pet { name }\n    ",
  2816      "errors": [
  2817        {
  2818          "message": "Fragment \"petFragment\" cannot be spread here as objects of type \"HumanOrAlien\" can never be of type \"Pet\".",
  2819          "locations": [
  2820            {
  2821              "line": 2,
  2822              "column": 62
  2823            }
  2824          ]
  2825        }
  2826      ]
  2827    },
  2828    {
  2829      "name": "Validate: Provided required arguments/ignores unknown arguments",
  2830      "rule": "ProvidedRequiredArguments",
  2831      "schema": 0,
  2832      "query": "\n      {\n        dog {\n          isHousetrained(unknownArgument: true)\n        }\n      }\n    ",
  2833      "errors": []
  2834    },
  2835    {
  2836      "name": "Validate: Provided required arguments/Valid non-nullable value/Arg on optional arg",
  2837      "rule": "ProvidedRequiredArguments",
  2838      "schema": 0,
  2839      "query": "\n        {\n          dog {\n            isHousetrained(atOtherHomes: true)\n          }\n        }\n      ",
  2840      "errors": []
  2841    },
  2842    {
  2843      "name": "Validate: Provided required arguments/Valid non-nullable value/No Arg on optional arg",
  2844      "rule": "ProvidedRequiredArguments",
  2845      "schema": 0,
  2846      "query": "\n        {\n          dog {\n            isHousetrained\n          }\n        }\n      ",
  2847      "errors": []
  2848    },
  2849    {
  2850      "name": "Validate: Provided required arguments/Valid non-nullable value/No arg on non-null field with default",
  2851      "rule": "ProvidedRequiredArguments",
  2852      "schema": 0,
  2853      "query": "\n        {\n          complicatedArgs {\n            nonNullFieldWithDefault\n          }\n        }\n      ",
  2854      "errors": []
  2855    },
  2856    {
  2857      "name": "Validate: Provided required arguments/Valid non-nullable value/Multiple args",
  2858      "rule": "ProvidedRequiredArguments",
  2859      "schema": 0,
  2860      "query": "\n        {\n          complicatedArgs {\n            multipleReqs(req1: 1, req2: 2)\n          }\n        }\n      ",
  2861      "errors": []
  2862    },
  2863    {
  2864      "name": "Validate: Provided required arguments/Valid non-nullable value/Multiple args reverse order",
  2865      "rule": "ProvidedRequiredArguments",
  2866      "schema": 0,
  2867      "query": "\n        {\n          complicatedArgs {\n            multipleReqs(req2: 2, req1: 1)\n          }\n        }\n      ",
  2868      "errors": []
  2869    },
  2870    {
  2871      "name": "Validate: Provided required arguments/Valid non-nullable value/No args on multiple optional",
  2872      "rule": "ProvidedRequiredArguments",
  2873      "schema": 0,
  2874      "query": "\n        {\n          complicatedArgs {\n            multipleOpts\n          }\n        }\n      ",
  2875      "errors": []
  2876    },
  2877    {
  2878      "name": "Validate: Provided required arguments/Valid non-nullable value/One arg on multiple optional",
  2879      "rule": "ProvidedRequiredArguments",
  2880      "schema": 0,
  2881      "query": "\n        {\n          complicatedArgs {\n            multipleOpts(opt1: 1)\n          }\n        }\n      ",
  2882      "errors": []
  2883    },
  2884    {
  2885      "name": "Validate: Provided required arguments/Valid non-nullable value/Second arg on multiple optional",
  2886      "rule": "ProvidedRequiredArguments",
  2887      "schema": 0,
  2888      "query": "\n        {\n          complicatedArgs {\n            multipleOpts(opt2: 1)\n          }\n        }\n      ",
  2889      "errors": []
  2890    },
  2891    {
  2892      "name": "Validate: Provided required arguments/Valid non-nullable value/Multiple reqs on mixedList",
  2893      "rule": "ProvidedRequiredArguments",
  2894      "schema": 0,
  2895      "query": "\n        {\n          complicatedArgs {\n            multipleOptAndReq(req1: 3, req2: 4)\n          }\n        }\n      ",
  2896      "errors": []
  2897    },
  2898    {
  2899      "name": "Validate: Provided required arguments/Valid non-nullable value/Multiple reqs and one opt on mixedList",
  2900      "rule": "ProvidedRequiredArguments",
  2901      "schema": 0,
  2902      "query": "\n        {\n          complicatedArgs {\n            multipleOptAndReq(req1: 3, req2: 4, opt1: 5)\n          }\n        }\n      ",
  2903      "errors": []
  2904    },
  2905    {
  2906      "name": "Validate: Provided required arguments/Valid non-nullable value/All reqs and opts on mixedList",
  2907      "rule": "ProvidedRequiredArguments",
  2908      "schema": 0,
  2909      "query": "\n        {\n          complicatedArgs {\n            multipleOptAndReq(req1: 3, req2: 4, opt1: 5, opt2: 6)\n          }\n        }\n      ",
  2910      "errors": []
  2911    },
  2912    {
  2913      "name": "Validate: Provided required arguments/Invalid non-nullable value/Missing one non-nullable argument",
  2914      "rule": "ProvidedRequiredArguments",
  2915      "schema": 0,
  2916      "query": "\n        {\n          complicatedArgs {\n            multipleReqs(req2: 2)\n          }\n        }\n      ",
  2917      "errors": [
  2918        {
  2919          "message": "Field \"multipleReqs\" argument \"req1\" of type \"Int!\" is required but not provided.",
  2920          "locations": [
  2921            {
  2922              "line": 4,
  2923              "column": 13
  2924            }
  2925          ]
  2926        }
  2927      ]
  2928    },
  2929    {
  2930      "name": "Validate: Provided required arguments/Invalid non-nullable value/Missing multiple non-nullable arguments",
  2931      "rule": "ProvidedRequiredArguments",
  2932      "schema": 0,
  2933      "query": "\n        {\n          complicatedArgs {\n            multipleReqs\n          }\n        }\n      ",
  2934      "errors": [
  2935        {
  2936          "message": "Field \"multipleReqs\" argument \"req1\" of type \"Int!\" is required but not provided.",
  2937          "locations": [
  2938            {
  2939              "line": 4,
  2940              "column": 13
  2941            }
  2942          ]
  2943        },
  2944        {
  2945          "message": "Field \"multipleReqs\" argument \"req2\" of type \"Int!\" is required but not provided.",
  2946          "locations": [
  2947            {
  2948              "line": 4,
  2949              "column": 13
  2950            }
  2951          ]
  2952        }
  2953      ]
  2954    },
  2955    {
  2956      "name": "Validate: Provided required arguments/Invalid non-nullable value/Incorrect value and missing argument",
  2957      "rule": "ProvidedRequiredArguments",
  2958      "schema": 0,
  2959      "query": "\n        {\n          complicatedArgs {\n            multipleReqs(req1: \"one\")\n          }\n        }\n      ",
  2960      "errors": [
  2961        {
  2962          "message": "Field \"multipleReqs\" argument \"req2\" of type \"Int!\" is required but not provided.",
  2963          "locations": [
  2964            {
  2965              "line": 4,
  2966              "column": 13
  2967            }
  2968          ]
  2969        }
  2970      ]
  2971    },
  2972    {
  2973      "name": "Validate: Provided required arguments/Directive arguments/ignores unknown directives",
  2974      "rule": "ProvidedRequiredArguments",
  2975      "schema": 0,
  2976      "query": "\n        {\n          dog @unknown\n        }\n      ",
  2977      "errors": []
  2978    },
  2979    {
  2980      "name": "Validate: Provided required arguments/Directive arguments/with directives of valid types",
  2981      "rule": "ProvidedRequiredArguments",
  2982      "schema": 0,
  2983      "query": "\n        {\n          dog @include(if: true) {\n            name\n          }\n          human @skip(if: false) {\n            name\n          }\n        }\n      ",
  2984      "errors": []
  2985    },
  2986    {
  2987      "name": "Validate: Provided required arguments/Directive arguments/with directive with missing types",
  2988      "rule": "ProvidedRequiredArguments",
  2989      "schema": 0,
  2990      "query": "\n        {\n          dog @include {\n            name @skip\n          }\n        }\n      ",
  2991      "errors": [
  2992        {
  2993          "message": "Directive \"@include\" argument \"if\" of type \"Boolean!\" is required but not provided.",
  2994          "locations": [
  2995            {
  2996              "line": 3,
  2997              "column": 15
  2998            }
  2999          ]
  3000        },
  3001        {
  3002          "message": "Directive \"@skip\" argument \"if\" of type \"Boolean!\" is required but not provided.",
  3003          "locations": [
  3004            {
  3005              "line": 4,
  3006              "column": 18
  3007            }
  3008          ]
  3009        }
  3010      ]
  3011    },
  3012    {
  3013      "name": "Validate: Scalar leafs/valid scalar selection",
  3014      "rule": "ScalarLeafs",
  3015      "schema": 0,
  3016      "query": "\n      fragment scalarSelection on Dog {\n        barks\n      }\n    ",
  3017      "errors": []
  3018    },
  3019    {
  3020      "name": "Validate: Scalar leafs/object type missing selection",
  3021      "rule": "ScalarLeafs",
  3022      "schema": 0,
  3023      "query": "\n      query directQueryOnObjectWithoutSubFields {\n        human\n      }\n    ",
  3024      "errors": [
  3025        {
  3026          "message": "Field \"human\" of type \"Human\" must have a selection of subfields. Did you mean \"human { ... }\"?",
  3027          "locations": [
  3028            {
  3029              "line": 3,
  3030              "column": 9
  3031            }
  3032          ]
  3033        }
  3034      ]
  3035    },
  3036    {
  3037      "name": "Validate: Scalar leafs/interface type missing selection",
  3038      "rule": "ScalarLeafs",
  3039      "schema": 0,
  3040      "query": "\n      {\n        human { pets }\n      }\n    ",
  3041      "errors": [
  3042        {
  3043          "message": "Field \"pets\" of type \"[Pet]\" must have a selection of subfields. Did you mean \"pets { ... }\"?",
  3044          "locations": [
  3045            {
  3046              "line": 3,
  3047              "column": 17
  3048            }
  3049          ]
  3050        }
  3051      ]
  3052    },
  3053    {
  3054      "name": "Validate: Scalar leafs/valid scalar selection with args",
  3055      "rule": "ScalarLeafs",
  3056      "schema": 0,
  3057      "query": "\n      fragment scalarSelectionWithArgs on Dog {\n        doesKnowCommand(dogCommand: SIT)\n      }\n    ",
  3058      "errors": []
  3059    },
  3060    {
  3061      "name": "Validate: Scalar leafs/scalar selection not allowed on Boolean",
  3062      "rule": "ScalarLeafs",
  3063      "schema": 0,
  3064      "query": "\n      fragment scalarSelectionsNotAllowedOnBoolean on Dog {\n        barks { sinceWhen }\n      }\n    ",
  3065      "errors": [
  3066        {
  3067          "message": "Field \"barks\" must not have a selection since type \"Boolean\" has no subfields.",
  3068          "locations": [
  3069            {
  3070              "line": 3,
  3071              "column": 15
  3072            }
  3073          ]
  3074        }
  3075      ]
  3076    },
  3077    {
  3078      "name": "Validate: Scalar leafs/scalar selection not allowed on Enum",
  3079      "rule": "ScalarLeafs",
  3080      "schema": 0,
  3081      "query": "\n      fragment scalarSelectionsNotAllowedOnEnum on Cat {\n        furColor { inHexdec }\n      }\n    ",
  3082      "errors": [
  3083        {
  3084          "message": "Field \"furColor\" must not have a selection since type \"FurColor\" has no subfields.",
  3085          "locations": [
  3086            {
  3087              "line": 3,
  3088              "column": 18
  3089            }
  3090          ]
  3091        }
  3092      ]
  3093    },
  3094    {
  3095      "name": "Validate: Scalar leafs/scalar selection not allowed with args",
  3096      "rule": "ScalarLeafs",
  3097      "schema": 0,
  3098      "query": "\n      fragment scalarSelectionsNotAllowedWithArgs on Dog {\n        doesKnowCommand(dogCommand: SIT) { sinceWhen }\n      }\n    ",
  3099      "errors": [
  3100        {
  3101          "message": "Field \"doesKnowCommand\" must not have a selection since type \"Boolean\" has no subfields.",
  3102          "locations": [
  3103            {
  3104              "line": 3,
  3105              "column": 42
  3106            }
  3107          ]
  3108        }
  3109      ]
  3110    },
  3111    {
  3112      "name": "Validate: Scalar leafs/Scalar selection not allowed with directives",
  3113      "rule": "ScalarLeafs",
  3114      "schema": 0,
  3115      "query": "\n      fragment scalarSelectionsNotAllowedWithDirectives on Dog {\n        name @include(if: true) { isAlsoHumanName }\n      }\n    ",
  3116      "errors": [
  3117        {
  3118          "message": "Field \"name\" must not have a selection since type \"String\" has no subfields.",
  3119          "locations": [
  3120            {
  3121              "line": 3,
  3122              "column": 33
  3123            }
  3124          ]
  3125        }
  3126      ]
  3127    },
  3128    {
  3129      "name": "Validate: Scalar leafs/Scalar selection not allowed with directives and args",
  3130      "rule": "ScalarLeafs",
  3131      "schema": 0,
  3132      "query": "\n      fragment scalarSelectionsNotAllowedWithDirectivesAndArgs on Dog {\n        doesKnowCommand(dogCommand: SIT) @include(if: true) { sinceWhen }\n      }\n    ",
  3133      "errors": [
  3134        {
  3135          "message": "Field \"doesKnowCommand\" must not have a selection since type \"Boolean\" has no subfields.",
  3136          "locations": [
  3137            {
  3138              "line": 3,
  3139              "column": 61
  3140            }
  3141          ]
  3142        }
  3143      ]
  3144    },
  3145    {
  3146      "name": "Validate: Subscriptions with single field/valid subscription",
  3147      "rule": "SingleFieldSubscriptions",
  3148      "schema": 0,
  3149      "query": "\n      subscription ImportantEmails {\n        importantEmails\n      }\n    ",
  3150      "errors": []
  3151    },
  3152    {
  3153      "name": "Validate: Subscriptions with single field/fails with more than one root field",
  3154      "rule": "SingleFieldSubscriptions",
  3155      "schema": 0,
  3156      "query": "\n      subscription ImportantEmails {\n        importantEmails\n        notImportantEmails\n      }\n    ",
  3157      "errors": [
  3158        {
  3159          "message": "Subscription \"ImportantEmails\" must select only one top level field.",
  3160          "locations": [
  3161            {
  3162              "line": 4,
  3163              "column": 9
  3164            }
  3165          ]
  3166        }
  3167      ]
  3168    },
  3169    {
  3170      "name": "Validate: Subscriptions with single field/fails with more than one root field including introspection",
  3171      "rule": "SingleFieldSubscriptions",
  3172      "schema": 0,
  3173      "query": "\n      subscription ImportantEmails {\n        importantEmails\n        __typename\n      }\n    ",
  3174      "errors": [
  3175        {
  3176          "message": "Subscription \"ImportantEmails\" must select only one top level field.",
  3177          "locations": [
  3178            {
  3179              "line": 4,
  3180              "column": 9
  3181            }
  3182          ]
  3183        }
  3184      ]
  3185    },
  3186    {
  3187      "name": "Validate: Subscriptions with single field/fails with many more than one root field",
  3188      "rule": "SingleFieldSubscriptions",
  3189      "schema": 0,
  3190      "query": "\n      subscription ImportantEmails {\n        importantEmails\n        notImportantEmails\n        spamEmails\n      }\n    ",
  3191      "errors": [
  3192        {
  3193          "message": "Subscription \"ImportantEmails\" must select only one top level field.",
  3194          "locations": [
  3195            {
  3196              "line": 4,
  3197              "column": 9
  3198            },
  3199            {
  3200              "line": 5,
  3201              "column": 9
  3202            }
  3203          ]
  3204        }
  3205      ]
  3206    },
  3207    {
  3208      "name": "Validate: Subscriptions with single field/fails with more than one root field in anonymous subscriptions",
  3209      "rule": "SingleFieldSubscriptions",
  3210      "schema": 0,
  3211      "query": "\n      subscription {\n        importantEmails\n        notImportantEmails\n      }\n    ",
  3212      "errors": [
  3213        {
  3214          "message": "Anonymous Subscription must select only one top level field.",
  3215          "locations": [
  3216            {
  3217              "line": 4,
  3218              "column": 9
  3219            }
  3220          ]
  3221        }
  3222      ]
  3223    },
  3224    {
  3225      "name": "Validate: Unique argument names/no arguments on field",
  3226      "rule": "UniqueArgumentNames",
  3227      "schema": 0,
  3228      "query": "\n      {\n        field\n      }\n    ",
  3229      "errors": []
  3230    },
  3231    {
  3232      "name": "Validate: Unique argument names/no arguments on directive",
  3233      "rule": "UniqueArgumentNames",
  3234      "schema": 0,
  3235      "query": "\n      {\n        field @directive\n      }\n    ",
  3236      "errors": []
  3237    },
  3238    {
  3239      "name": "Validate: Unique argument names/argument on field",
  3240      "rule": "UniqueArgumentNames",
  3241      "schema": 0,
  3242      "query": "\n      {\n        field(arg: \"value\")\n      }\n    ",
  3243      "errors": []
  3244    },
  3245    {
  3246      "name": "Validate: Unique argument names/argument on directive",
  3247      "rule": "UniqueArgumentNames",
  3248      "schema": 0,
  3249      "query": "\n      {\n        field @directive(arg: \"value\")\n      }\n    ",
  3250      "errors": []
  3251    },
  3252    {
  3253      "name": "Validate: Unique argument names/same argument on two fields",
  3254      "rule": "UniqueArgumentNames",
  3255      "schema": 0,
  3256      "query": "\n      {\n        one: field(arg: \"value\")\n        two: field(arg: \"value\")\n      }\n    ",
  3257      "errors": []
  3258    },
  3259    {
  3260      "name": "Validate: Unique argument names/same argument on field and directive",
  3261      "rule": "UniqueArgumentNames",
  3262      "schema": 0,
  3263      "query": "\n      {\n        field(arg: \"value\") @directive(arg: \"value\")\n      }\n    ",
  3264      "errors": []
  3265    },
  3266    {
  3267      "name": "Validate: Unique argument names/same argument on two directives",
  3268      "rule": "UniqueArgumentNames",
  3269      "schema": 0,
  3270      "query": "\n      {\n        field @directive1(arg: \"value\") @directive2(arg: \"value\")\n      }\n    ",
  3271      "errors": []
  3272    },
  3273    {
  3274      "name": "Validate: Unique argument names/multiple field arguments",
  3275      "rule": "UniqueArgumentNames",
  3276      "schema": 0,
  3277      "query": "\n      {\n        field(arg1: \"value\", arg2: \"value\", arg3: \"value\")\n      }\n    ",
  3278      "errors": []
  3279    },
  3280    {
  3281      "name": "Validate: Unique argument names/multiple directive arguments",
  3282      "rule": "UniqueArgumentNames",
  3283      "schema": 0,
  3284      "query": "\n      {\n        field @directive(arg1: \"value\", arg2: \"value\", arg3: \"value\")\n      }\n    ",
  3285      "errors": []
  3286    },
  3287    {
  3288      "name": "Validate: Unique argument names/duplicate field arguments",
  3289      "rule": "UniqueArgumentNames",
  3290      "schema": 0,
  3291      "query": "\n      {\n        field(arg1: \"value\", arg1: \"value\")\n      }\n    ",
  3292      "errors": [
  3293        {
  3294          "message": "There can be only one argument named \"arg1\".",
  3295          "locations": [
  3296            {
  3297              "line": 3,
  3298              "column": 15
  3299            },
  3300            {
  3301              "line": 3,
  3302              "column": 30
  3303            }
  3304          ]
  3305        }
  3306      ]
  3307    },
  3308    {
  3309      "name": "Validate: Unique argument names/many duplicate field arguments",
  3310      "rule": "UniqueArgumentNames",
  3311      "schema": 0,
  3312      "query": "\n      {\n        field(arg1: \"value\", arg1: \"value\", arg1: \"value\")\n      }\n    ",
  3313      "errors": [
  3314        {
  3315          "message": "There can be only one argument named \"arg1\".",
  3316          "locations": [
  3317            {
  3318              "line": 3,
  3319              "column": 15
  3320            },
  3321            {
  3322              "line": 3,
  3323              "column": 30
  3324            }
  3325          ]
  3326        },
  3327        {
  3328          "message": "There can be only one argument named \"arg1\".",
  3329          "locations": [
  3330            {
  3331              "line": 3,
  3332              "column": 15
  3333            },
  3334            {
  3335              "line": 3,
  3336              "column": 45
  3337            }
  3338          ]
  3339        }
  3340      ]
  3341    },
  3342    {
  3343      "name": "Validate: Unique argument names/duplicate directive arguments",
  3344      "rule": "UniqueArgumentNames",
  3345      "schema": 0,
  3346      "query": "\n      {\n        field @directive(arg1: \"value\", arg1: \"value\")\n      }\n    ",
  3347      "errors": [
  3348        {
  3349          "message": "There can be only one argument named \"arg1\".",
  3350          "locations": [
  3351            {
  3352              "line": 3,
  3353              "column": 26
  3354            },
  3355            {
  3356              "line": 3,
  3357              "column": 41
  3358            }
  3359          ]
  3360        }
  3361      ]
  3362    },
  3363    {
  3364      "name": "Validate: Unique argument names/many duplicate directive arguments",
  3365      "rule": "UniqueArgumentNames",
  3366      "schema": 0,
  3367      "query": "\n      {\n        field @directive(arg1: \"value\", arg1: \"value\", arg1: \"value\")\n      }\n    ",
  3368      "errors": [
  3369        {
  3370          "message": "There can be only one argument named \"arg1\".",
  3371          "locations": [
  3372            {
  3373              "line": 3,
  3374              "column": 26
  3375            },
  3376            {
  3377              "line": 3,
  3378              "column": 41
  3379            }
  3380          ]
  3381        },
  3382        {
  3383          "message": "There can be only one argument named \"arg1\".",
  3384          "locations": [
  3385            {
  3386              "line": 3,
  3387              "column": 26
  3388            },
  3389            {
  3390              "line": 3,
  3391              "column": 56
  3392            }
  3393          ]
  3394        }
  3395      ]
  3396    },
  3397    {
  3398      "name": "Validate: Directives Are Unique Per Location/no directives",
  3399      "rule": "UniqueDirectivesPerLocation",
  3400      "schema": 0,
  3401      "query": "\n      fragment Test on Type {\n        field\n      }\n    ",
  3402      "errors": []
  3403    },
  3404    {
  3405      "name": "Validate: Directives Are Unique Per Location/unique directives in different locations",
  3406      "rule": "UniqueDirectivesPerLocation",
  3407      "schema": 0,
  3408      "query": "\n      fragment Test on Type @directiveA {\n        field @directiveB\n      }\n    ",
  3409      "errors": []
  3410    },
  3411    {
  3412      "name": "Validate: Directives Are Unique Per Location/unique directives in same locations",
  3413      "rule": "UniqueDirectivesPerLocation",
  3414      "schema": 0,
  3415      "query": "\n      fragment Test on Type @directiveA @directiveB {\n        field @directiveA @directiveB\n      }\n    ",
  3416      "errors": []
  3417    },
  3418    {
  3419      "name": "Validate: Directives Are Unique Per Location/same directives in different locations",
  3420      "rule": "UniqueDirectivesPerLocation",
  3421      "schema": 0,
  3422      "query": "\n      fragment Test on Type @directiveA {\n        field @directiveA\n      }\n    ",
  3423      "errors": []
  3424    },
  3425    {
  3426      "name": "Validate: Directives Are Unique Per Location/same directives in similar locations",
  3427      "rule": "UniqueDirectivesPerLocation",
  3428      "schema": 0,
  3429      "query": "\n      fragment Test on Type {\n        field @directive\n        field @directive\n      }\n    ",
  3430      "errors": []
  3431    },
  3432    {
  3433      "name": "Validate: Directives Are Unique Per Location/duplicate directives in one location",
  3434      "rule": "UniqueDirectivesPerLocation",
  3435      "schema": 0,
  3436      "query": "\n      fragment Test on Type {\n        field @directive @directive\n      }\n    ",
  3437      "errors": [
  3438        {
  3439          "message": "The directive \"directive\" can only be used once at this location.",
  3440          "locations": [
  3441            {
  3442              "line": 3,
  3443              "column": 15
  3444            },
  3445            {
  3446              "line": 3,
  3447              "column": 26
  3448            }
  3449          ]
  3450        }
  3451      ]
  3452    },
  3453    {
  3454      "name": "Validate: Directives Are Unique Per Location/many duplicate directives in one location",
  3455      "rule": "UniqueDirectivesPerLocation",
  3456      "schema": 0,
  3457      "query": "\n      fragment Test on Type {\n        field @directive @directive @directive\n      }\n    ",
  3458      "errors": [
  3459        {
  3460          "message": "The directive \"directive\" can only be used once at this location.",
  3461          "locations": [
  3462            {
  3463              "line": 3,
  3464              "column": 15
  3465            },
  3466            {
  3467              "line": 3,
  3468              "column": 26
  3469            }
  3470          ]
  3471        },
  3472        {
  3473          "message": "The directive \"directive\" can only be used once at this location.",
  3474          "locations": [
  3475            {
  3476              "line": 3,
  3477              "column": 15
  3478            },
  3479            {
  3480              "line": 3,
  3481              "column": 37
  3482            }
  3483          ]
  3484        }
  3485      ]
  3486    },
  3487    {
  3488      "name": "Validate: Directives Are Unique Per Location/different duplicate directives in one location",
  3489      "rule": "UniqueDirectivesPerLocation",
  3490      "schema": 0,
  3491      "query": "\n      fragment Test on Type {\n        field @directiveA @directiveB @directiveA @directiveB\n      }\n    ",
  3492      "errors": [
  3493        {
  3494          "message": "The directive \"directiveA\" can only be used once at this location.",
  3495          "locations": [
  3496            {
  3497              "line": 3,
  3498              "column": 15
  3499            },
  3500            {
  3501              "line": 3,
  3502              "column": 39
  3503            }
  3504          ]
  3505        },
  3506        {
  3507          "message": "The directive \"directiveB\" can only be used once at this location.",
  3508          "locations": [
  3509            {
  3510              "line": 3,
  3511              "column": 27
  3512            },
  3513            {
  3514              "line": 3,
  3515              "column": 51
  3516            }
  3517          ]
  3518        }
  3519      ]
  3520    },
  3521    {
  3522      "name": "Validate: Directives Are Unique Per Location/duplicate directives in many locations",
  3523      "rule": "UniqueDirectivesPerLocation",
  3524      "schema": 0,
  3525      "query": "\n      fragment Test on Type @directive @directive {\n        field @directive @directive\n      }\n    ",
  3526      "errors": [
  3527        {
  3528          "message": "The directive \"directive\" can only be used once at this location.",
  3529          "locations": [
  3530            {
  3531              "line": 2,
  3532              "column": 29
  3533            },
  3534            {
  3535              "line": 2,
  3536              "column": 40
  3537            }
  3538          ]
  3539        },
  3540        {
  3541          "message": "The directive \"directive\" can only be used once at this location.",
  3542          "locations": [
  3543            {
  3544              "line": 3,
  3545              "column": 15
  3546            },
  3547            {
  3548              "line": 3,
  3549              "column": 26
  3550            }
  3551          ]
  3552        }
  3553      ]
  3554    },
  3555    {
  3556      "name": "Validate: Unique fragment names/no fragments",
  3557      "rule": "UniqueFragmentNames",
  3558      "schema": 0,
  3559      "query": "\n      {\n        field\n      }\n    ",
  3560      "errors": []
  3561    },
  3562    {
  3563      "name": "Validate: Unique fragment names/one fragment",
  3564      "rule": "UniqueFragmentNames",
  3565      "schema": 0,
  3566      "query": "\n      {\n        ...fragA\n      }\n\n      fragment fragA on Type {\n        field\n      }\n    ",
  3567      "errors": []
  3568    },
  3569    {
  3570      "name": "Validate: Unique fragment names/many fragments",
  3571      "rule": "UniqueFragmentNames",
  3572      "schema": 0,
  3573      "query": "\n      {\n        ...fragA\n        ...fragB\n        ...fragC\n      }\n      fragment fragA on Type {\n        fieldA\n      }\n      fragment fragB on Type {\n        fieldB\n      }\n      fragment fragC on Type {\n        fieldC\n      }\n    ",
  3574      "errors": []
  3575    },
  3576    {
  3577      "name": "Validate: Unique fragment names/inline fragments are always unique",
  3578      "rule": "UniqueFragmentNames",
  3579      "schema": 0,
  3580      "query": "\n      {\n        ...on Type {\n          fieldA\n        }\n        ...on Type {\n          fieldB\n        }\n      }\n    ",
  3581      "errors": []
  3582    },
  3583    {
  3584      "name": "Validate: Unique fragment names/fragment and operation named the same",
  3585      "rule": "UniqueFragmentNames",
  3586      "schema": 0,
  3587      "query": "\n      query Foo {\n        ...Foo\n      }\n      fragment Foo on Type {\n        field\n      }\n    ",
  3588      "errors": []
  3589    },
  3590    {
  3591      "name": "Validate: Unique fragment names/fragments named the same",
  3592      "rule": "UniqueFragmentNames",
  3593      "schema": 0,
  3594      "query": "\n      {\n        ...fragA\n      }\n      fragment fragA on Type {\n        fieldA\n      }\n      fragment fragA on Type {\n        fieldB\n      }\n    ",
  3595      "errors": [
  3596        {
  3597          "message": "There can be only one fragment named \"fragA\".",
  3598          "locations": [
  3599            {
  3600              "line": 5,
  3601              "column": 16
  3602            },
  3603            {
  3604              "line": 8,
  3605              "column": 16
  3606            }
  3607          ]
  3608        }
  3609      ]
  3610    },
  3611    {
  3612      "name": "Validate: Unique fragment names/fragments named the same without being referenced",
  3613      "rule": "UniqueFragmentNames",
  3614      "schema": 0,
  3615      "query": "\n      fragment fragA on Type {\n        fieldA\n      }\n      fragment fragA on Type {\n        fieldB\n      }\n    ",
  3616      "errors": [
  3617        {
  3618          "message": "There can be only one fragment named \"fragA\".",
  3619          "locations": [
  3620            {
  3621              "line": 2,
  3622              "column": 16
  3623            },
  3624            {
  3625              "line": 5,
  3626              "column": 16
  3627            }
  3628          ]
  3629        }
  3630      ]
  3631    },
  3632    {
  3633      "name": "Validate: Unique input field names/input object with fields",
  3634      "rule": "UniqueInputFieldNames",
  3635      "schema": 0,
  3636      "query": "\n      {\n        field(arg: { f: true })\n      }\n    ",
  3637      "errors": []
  3638    },
  3639    {
  3640      "name": "Validate: Unique input field names/same input object within two args",
  3641      "rule": "UniqueInputFieldNames",
  3642      "schema": 0,
  3643      "query": "\n      {\n        field(arg1: { f: true }, arg2: { f: true })\n      }\n    ",
  3644      "errors": []
  3645    },
  3646    {
  3647      "name": "Validate: Unique input field names/multiple input object fields",
  3648      "rule": "UniqueInputFieldNames",
  3649      "schema": 0,
  3650      "query": "\n      {\n        field(arg: { f1: \"value\", f2: \"value\", f3: \"value\" })\n      }\n    ",
  3651      "errors": []
  3652    },
  3653    {
  3654      "name": "Validate: Unique input field names/allows for nested input objects with similar fields",
  3655      "rule": "UniqueInputFieldNames",
  3656      "schema": 0,
  3657      "query": "\n      {\n        field(arg: {\n          deep: {\n            deep: {\n              id: 1\n            }\n            id: 1\n          }\n          id: 1\n        })\n      }\n    ",
  3658      "errors": []
  3659    },
  3660    {
  3661      "name": "Validate: Unique input field names/duplicate input object fields",
  3662      "rule": "UniqueInputFieldNames",
  3663      "schema": 0,
  3664      "query": "\n      {\n        field(arg: { f1: \"value\", f1: \"value\" })\n      }\n    ",
  3665      "errors": [
  3666        {
  3667          "message": "There can be only one input field named \"f1\".",
  3668          "locations": [
  3669            {
  3670              "line": 3,
  3671              "column": 22
  3672            },
  3673            {
  3674              "line": 3,
  3675              "column": 35
  3676            }
  3677          ]
  3678        }
  3679      ]
  3680    },
  3681    {
  3682      "name": "Validate: Unique input field names/many duplicate input object fields",
  3683      "rule": "UniqueInputFieldNames",
  3684      "schema": 0,
  3685      "query": "\n      {\n        field(arg: { f1: \"value\", f1: \"value\", f1: \"value\" })\n      }\n    ",
  3686      "errors": [
  3687        {
  3688          "message": "There can be only one input field named \"f1\".",
  3689          "locations": [
  3690            {
  3691              "line": 3,
  3692              "column": 22
  3693            },
  3694            {
  3695              "line": 3,
  3696              "column": 35
  3697            }
  3698          ]
  3699        },
  3700        {
  3701          "message": "There can be only one input field named \"f1\".",
  3702          "locations": [
  3703            {
  3704              "line": 3,
  3705              "column": 22
  3706            },
  3707            {
  3708              "line": 3,
  3709              "column": 48
  3710            }
  3711          ]
  3712        }
  3713      ]
  3714    },
  3715    {
  3716      "name": "Validate: Unique operation names/no operations",
  3717      "rule": "UniqueOperationNames",
  3718      "schema": 0,
  3719      "query": "\n      fragment fragA on Type {\n        field\n      }\n    ",
  3720      "errors": []
  3721    },
  3722    {
  3723      "name": "Validate: Unique operation names/one anon operation",
  3724      "rule": "UniqueOperationNames",
  3725      "schema": 0,
  3726      "query": "\n      {\n        field\n      }\n    ",
  3727      "errors": []
  3728    },
  3729    {
  3730      "name": "Validate: Unique operation names/one named operation",
  3731      "rule": "UniqueOperationNames",
  3732      "schema": 0,
  3733      "query": "\n      query Foo {\n        field\n      }\n    ",
  3734      "errors": []
  3735    },
  3736    {
  3737      "name": "Validate: Unique operation names/multiple operations",
  3738      "rule": "UniqueOperationNames",
  3739      "schema": 0,
  3740      "query": "\n      query Foo {\n        field\n      }\n\n      query Bar {\n        field\n      }\n    ",
  3741      "errors": []
  3742    },
  3743    {
  3744      "name": "Validate: Unique operation names/multiple operations of different types",
  3745      "rule": "UniqueOperationNames",
  3746      "schema": 0,
  3747      "query": "\n      query Foo {\n        field\n      }\n\n      mutation Bar {\n        field\n      }\n\n      subscription Baz {\n        field\n      }\n    ",
  3748      "errors": []
  3749    },
  3750    {
  3751      "name": "Validate: Unique operation names/fragment and operation named the same",
  3752      "rule": "UniqueOperationNames",
  3753      "schema": 0,
  3754      "query": "\n      query Foo {\n        ...Foo\n      }\n      fragment Foo on Type {\n        field\n      }\n    ",
  3755      "errors": []
  3756    },
  3757    {
  3758      "name": "Validate: Unique operation names/multiple operations of same name",
  3759      "rule": "UniqueOperationNames",
  3760      "schema": 0,
  3761      "query": "\n      query Foo {\n        fieldA\n      }\n      query Foo {\n        fieldB\n      }\n    ",
  3762      "errors": [
  3763        {
  3764          "message": "There can be only one operation named \"Foo\".",
  3765          "locations": [
  3766            {
  3767              "line": 2,
  3768              "column": 13
  3769            },
  3770            {
  3771              "line": 5,
  3772              "column": 13
  3773            }
  3774          ]
  3775        }
  3776      ]
  3777    },
  3778    {
  3779      "name": "Validate: Unique operation names/multiple ops of same name of different types (mutation)",
  3780      "rule": "UniqueOperationNames",
  3781      "schema": 0,
  3782      "query": "\n      query Foo {\n        fieldA\n      }\n      mutation Foo {\n        fieldB\n      }\n    ",
  3783      "errors": [
  3784        {
  3785          "message": "There can be only one operation named \"Foo\".",
  3786          "locations": [
  3787            {
  3788              "line": 2,
  3789              "column": 13
  3790            },
  3791            {
  3792              "line": 5,
  3793              "column": 16
  3794            }
  3795          ]
  3796        }
  3797      ]
  3798    },
  3799    {
  3800      "name": "Validate: Unique operation names/multiple ops of same name of different types (subscription)",
  3801      "rule": "UniqueOperationNames",
  3802      "schema": 0,
  3803      "query": "\n      query Foo {\n        fieldA\n      }\n      subscription Foo {\n        fieldB\n      }\n    ",
  3804      "errors": [
  3805        {
  3806          "message": "There can be only one operation named \"Foo\".",
  3807          "locations": [
  3808            {
  3809              "line": 2,
  3810              "column": 13
  3811            },
  3812            {
  3813              "line": 5,
  3814              "column": 20
  3815            }
  3816          ]
  3817        }
  3818      ]
  3819    },
  3820    {
  3821      "name": "Validate: Unique variable names/unique variable names",
  3822      "rule": "UniqueVariableNames",
  3823      "schema": 0,
  3824      "query": "\n      query A($x: Int, $y: String) { __typename }\n      query B($x: String, $y: Int) { __typename }\n    ",
  3825      "errors": []
  3826    },
  3827    {
  3828      "name": "Validate: Unique variable names/duplicate variable names",
  3829      "rule": "UniqueVariableNames",
  3830      "schema": 0,
  3831      "query": "\n      query A($x: Int, $x: Int, $x: String) { __typename }\n      query B($x: String, $x: Int) { __typename }\n      query C($x: Int, $x: Int) { __typename }\n    ",
  3832      "errors": [
  3833        {
  3834          "message": "There can be only one variable named \"x\".",
  3835          "locations": [
  3836            {
  3837              "line": 2,
  3838              "column": 16
  3839            },
  3840            {
  3841              "line": 2,
  3842              "column": 25
  3843            }
  3844          ]
  3845        },
  3846        {
  3847          "message": "There can be only one variable named \"x\".",
  3848          "locations": [
  3849            {
  3850              "line": 2,
  3851              "column": 16
  3852            },
  3853            {
  3854              "line": 2,
  3855              "column": 34
  3856            }
  3857          ]
  3858        },
  3859        {
  3860          "message": "There can be only one variable named \"x\".",
  3861          "locations": [
  3862            {
  3863              "line": 3,
  3864              "column": 16
  3865            },
  3866            {
  3867              "line": 3,
  3868              "column": 28
  3869            }
  3870          ]
  3871        },
  3872        {
  3873          "message": "There can be only one variable named \"x\".",
  3874          "locations": [
  3875            {
  3876              "line": 4,
  3877              "column": 16
  3878            },
  3879            {
  3880              "line": 4,
  3881              "column": 25
  3882            }
  3883          ]
  3884        }
  3885      ]
  3886    },
  3887    {
  3888      "name": "Validate: Values of correct type/Valid values/Good int value",
  3889      "rule": "ValuesOfCorrectType",
  3890      "schema": 0,
  3891      "query": "\n        {\n          complicatedArgs {\n            intArgField(intArg: 2)\n          }\n        }\n      ",
  3892      "errors": []
  3893    },
  3894    {
  3895      "name": "Validate: Values of correct type/Valid values/Good negative int value",
  3896      "rule": "ValuesOfCorrectType",
  3897      "schema": 0,
  3898      "query": "\n        {\n          complicatedArgs {\n            intArgField(intArg: -2)\n          }\n        }\n      ",
  3899      "errors": []
  3900    },
  3901    {
  3902      "name": "Validate: Values of correct type/Valid values/Good boolean value",
  3903      "rule": "ValuesOfCorrectType",
  3904      "schema": 0,
  3905      "query": "\n        {\n          complicatedArgs {\n            booleanArgField(booleanArg: true)\n          }\n        }\n      ",
  3906      "errors": []
  3907    },
  3908    {
  3909      "name": "Validate: Values of correct type/Valid values/Good string value",
  3910      "rule": "ValuesOfCorrectType",
  3911      "schema": 0,
  3912      "query": "\n        {\n          complicatedArgs {\n            stringArgField(stringArg: \"foo\")\n          }\n        }\n      ",
  3913      "errors": []
  3914    },
  3915    {
  3916      "name": "Validate: Values of correct type/Valid values/Good float value",
  3917      "rule": "ValuesOfCorrectType",
  3918      "schema": 0,
  3919      "query": "\n        {\n          complicatedArgs {\n            floatArgField(floatArg: 1.1)\n          }\n        }\n      ",
  3920      "errors": []
  3921    },
  3922    {
  3923      "name": "Validate: Values of correct type/Valid values/Good negative float value",
  3924      "rule": "ValuesOfCorrectType",
  3925      "schema": 0,
  3926      "query": "\n        {\n          complicatedArgs {\n            floatArgField(floatArg: -1.1)\n          }\n        }\n      ",
  3927      "errors": []
  3928    },
  3929    {
  3930      "name": "Validate: Values of correct type/Valid values/Int into Float",
  3931      "rule": "ValuesOfCorrectType",
  3932      "schema": 0,
  3933      "query": "\n        {\n          complicatedArgs {\n            floatArgField(floatArg: 1)\n          }\n        }\n      ",
  3934      "errors": []
  3935    },
  3936    {
  3937      "name": "Validate: Values of correct type/Valid values/Int into ID",
  3938      "rule": "ValuesOfCorrectType",
  3939      "schema": 0,
  3940      "query": "\n        {\n          complicatedArgs {\n            idArgField(idArg: 1)\n          }\n        }\n      ",
  3941      "errors": []
  3942    },
  3943    {
  3944      "name": "Validate: Values of correct type/Valid values/String into ID",
  3945      "rule": "ValuesOfCorrectType",
  3946      "schema": 0,
  3947      "query": "\n        {\n          complicatedArgs {\n            idArgField(idArg: \"someIdString\")\n          }\n        }\n      ",
  3948      "errors": []
  3949    },
  3950    {
  3951      "name": "Validate: Values of correct type/Valid values/Good enum value",
  3952      "rule": "ValuesOfCorrectType",
  3953      "schema": 0,
  3954      "query": "\n        {\n          dog {\n            doesKnowCommand(dogCommand: SIT)\n          }\n        }\n      ",
  3955      "errors": []
  3956    },
  3957    {
  3958      "name": "Validate: Values of correct type/Valid values/Enum with undefined value",
  3959      "rule": "ValuesOfCorrectType",
  3960      "schema": 0,
  3961      "query": "\n        {\n          complicatedArgs {\n            enumArgField(enumArg: UNKNOWN)\n          }\n        }\n      ",
  3962      "errors": []
  3963    },
  3964    {
  3965      "name": "Validate: Values of correct type/Valid values/Enum with null value",
  3966      "rule": "ValuesOfCorrectType",
  3967      "schema": 0,
  3968      "query": "\n        {\n          complicatedArgs {\n            enumArgField(enumArg: NO_FUR)\n          }\n        }\n      ",
  3969      "errors": []
  3970    },
  3971    {
  3972      "name": "Validate: Values of correct type/Valid values/null into nullable type",
  3973      "rule": "ValuesOfCorrectType",
  3974      "schema": 0,
  3975      "query": "\n        {\n          complicatedArgs {\n            intArgField(intArg: null)\n          }\n        }\n      ",
  3976      "errors": []
  3977    },
  3978    {
  3979      "name": "Validate: Values of correct type/Valid values/null into nullable type",
  3980      "rule": "ValuesOfCorrectType",
  3981      "schema": 0,
  3982      "query": "\n        {\n          dog(a: null, b: null, c:{ requiredField: true, intField: null }) {\n            name\n          }\n        }\n      ",
  3983      "errors": []
  3984    },
  3985    {
  3986      "name": "Validate: Values of correct type/Invalid String values/Int into String",
  3987      "rule": "ValuesOfCorrectType",
  3988      "schema": 0,
  3989      "query": "\n        {\n          complicatedArgs {\n            stringArgField(stringArg: 1)\n          }\n        }\n      ",
  3990      "errors": [
  3991        {
  3992          "message": "Expected type String, found 1.",
  3993          "locations": [
  3994            {
  3995              "line": 4,
  3996              "column": 39
  3997            }
  3998          ]
  3999        }
  4000      ]
  4001    },
  4002    {
  4003      "name": "Validate: Values of correct type/Invalid String values/Float into String",
  4004      "rule": "ValuesOfCorrectType",
  4005      "schema": 0,
  4006      "query": "\n        {\n          complicatedArgs {\n            stringArgField(stringArg: 1.0)\n          }\n        }\n      ",
  4007      "errors": [
  4008        {
  4009          "message": "Expected type String, found 1.0.",
  4010          "locations": [
  4011            {
  4012              "line": 4,
  4013              "column": 39
  4014            }
  4015          ]
  4016        }
  4017      ]
  4018    },
  4019    {
  4020      "name": "Validate: Values of correct type/Invalid String values/Boolean into String",
  4021      "rule": "ValuesOfCorrectType",
  4022      "schema": 0,
  4023      "query": "\n        {\n          complicatedArgs {\n            stringArgField(stringArg: true)\n          }\n        }\n      ",
  4024      "errors": [
  4025        {
  4026          "message": "Expected type String, found true.",
  4027          "locations": [
  4028            {
  4029              "line": 4,
  4030              "column": 39
  4031            }
  4032          ]
  4033        }
  4034      ]
  4035    },
  4036    {
  4037      "name": "Validate: Values of correct type/Invalid String values/Unquoted String into String",
  4038      "rule": "ValuesOfCorrectType",
  4039      "schema": 0,
  4040      "query": "\n        {\n          complicatedArgs {\n            stringArgField(stringArg: BAR)\n          }\n        }\n      ",
  4041      "errors": [
  4042        {
  4043          "message": "Expected type String, found BAR.",
  4044          "locations": [
  4045            {
  4046              "line": 4,
  4047              "column": 39
  4048            }
  4049          ]
  4050        }
  4051      ]
  4052    },
  4053    {
  4054      "name": "Validate: Values of correct type/Invalid Int values/String into Int",
  4055      "rule": "ValuesOfCorrectType",
  4056      "schema": 0,
  4057      "query": "\n        {\n          complicatedArgs {\n            intArgField(intArg: \"3\")\n          }\n        }\n      ",
  4058      "errors": [
  4059        {
  4060          "message": "Expected type Int, found \"3\".",
  4061          "locations": [
  4062            {
  4063              "line": 4,
  4064              "column": 33
  4065            }
  4066          ]
  4067        }
  4068      ]
  4069    },
  4070    {
  4071      "name": "Validate: Values of correct type/Invalid Int values/Big Int into Int",
  4072      "rule": "ValuesOfCorrectType",
  4073      "schema": 0,
  4074      "query": "\n        {\n          complicatedArgs {\n            intArgField(intArg: 829384293849283498239482938)\n          }\n        }\n      ",
  4075      "errors": [
  4076        {
  4077          "message": "Expected type Int, found 829384293849283498239482938.",
  4078          "locations": [
  4079            {
  4080              "line": 4,
  4081              "column": 33
  4082            }
  4083          ]
  4084        }
  4085      ]
  4086    },
  4087    {
  4088      "name": "Validate: Values of correct type/Invalid Int values/Unquoted String into Int",
  4089      "rule": "ValuesOfCorrectType",
  4090      "schema": 0,
  4091      "query": "\n        {\n          complicatedArgs {\n            intArgField(intArg: FOO)\n          }\n        }\n      ",
  4092      "errors": [
  4093        {
  4094          "message": "Expected type Int, found FOO.",
  4095          "locations": [
  4096            {
  4097              "line": 4,
  4098              "column": 33
  4099            }
  4100          ]
  4101        }
  4102      ]
  4103    },
  4104    {
  4105      "name": "Validate: Values of correct type/Invalid Int values/Simple Float into Int",
  4106      "rule": "ValuesOfCorrectType",
  4107      "schema": 0,
  4108      "query": "\n        {\n          complicatedArgs {\n            intArgField(intArg: 3.0)\n          }\n        }\n      ",
  4109      "errors": [
  4110        {
  4111          "message": "Expected type Int, found 3.0.",
  4112          "locations": [
  4113            {
  4114              "line": 4,
  4115              "column": 33
  4116            }
  4117          ]
  4118        }
  4119      ]
  4120    },
  4121    {
  4122      "name": "Validate: Values of correct type/Invalid Int values/Float into Int",
  4123      "rule": "ValuesOfCorrectType",
  4124      "schema": 0,
  4125      "query": "\n        {\n          complicatedArgs {\n            intArgField(intArg: 3.333)\n          }\n        }\n      ",
  4126      "errors": [
  4127        {
  4128          "message": "Expected type Int, found 3.333.",
  4129          "locations": [
  4130            {
  4131              "line": 4,
  4132              "column": 33
  4133            }
  4134          ]
  4135        }
  4136      ]
  4137    },
  4138    {
  4139      "name": "Validate: Values of correct type/Invalid Float values/String into Float",
  4140      "rule": "ValuesOfCorrectType",
  4141      "schema": 0,
  4142      "query": "\n        {\n          complicatedArgs {\n            floatArgField(floatArg: \"3.333\")\n          }\n        }\n      ",
  4143      "errors": [
  4144        {
  4145          "message": "Expected type Float, found \"3.333\".",
  4146          "locations": [
  4147            {
  4148              "line": 4,
  4149              "column": 37
  4150            }
  4151          ]
  4152        }
  4153      ]
  4154    },
  4155    {
  4156      "name": "Validate: Values of correct type/Invalid Float values/Boolean into Float",
  4157      "rule": "ValuesOfCorrectType",
  4158      "schema": 0,
  4159      "query": "\n        {\n          complicatedArgs {\n            floatArgField(floatArg: true)\n          }\n        }\n      ",
  4160      "errors": [
  4161        {
  4162          "message": "Expected type Float, found true.",
  4163          "locations": [
  4164            {
  4165              "line": 4,
  4166              "column": 37
  4167            }
  4168          ]
  4169        }
  4170      ]
  4171    },
  4172    {
  4173      "name": "Validate: Values of correct type/Invalid Float values/Unquoted into Float",
  4174      "rule": "ValuesOfCorrectType",
  4175      "schema": 0,
  4176      "query": "\n        {\n          complicatedArgs {\n            floatArgField(floatArg: FOO)\n          }\n        }\n      ",
  4177      "errors": [
  4178        {
  4179          "message": "Expected type Float, found FOO.",
  4180          "locations": [
  4181            {
  4182              "line": 4,
  4183              "column": 37
  4184            }
  4185          ]
  4186        }
  4187      ]
  4188    },
  4189    {
  4190      "name": "Validate: Values of correct type/Invalid Boolean value/Int into Boolean",
  4191      "rule": "ValuesOfCorrectType",
  4192      "schema": 0,
  4193      "query": "\n        {\n          complicatedArgs {\n            booleanArgField(booleanArg: 2)\n          }\n        }\n      ",
  4194      "errors": [
  4195        {
  4196          "message": "Expected type Boolean, found 2.",
  4197          "locations": [
  4198            {
  4199              "line": 4,
  4200              "column": 41
  4201            }
  4202          ]
  4203        }
  4204      ]
  4205    },
  4206    {
  4207      "name": "Validate: Values of correct type/Invalid Boolean value/Float into Boolean",
  4208      "rule": "ValuesOfCorrectType",
  4209      "schema": 0,
  4210      "query": "\n        {\n          complicatedArgs {\n            booleanArgField(booleanArg: 1.0)\n          }\n        }\n      ",
  4211      "errors": [
  4212        {
  4213          "message": "Expected type Boolean, found 1.0.",
  4214          "locations": [
  4215            {
  4216              "line": 4,
  4217              "column": 41
  4218            }
  4219          ]
  4220        }
  4221      ]
  4222    },
  4223    {
  4224      "name": "Validate: Values of correct type/Invalid Boolean value/String into Boolean",
  4225      "rule": "ValuesOfCorrectType",
  4226      "schema": 0,
  4227      "query": "\n        {\n          complicatedArgs {\n            booleanArgField(booleanArg: \"true\")\n          }\n        }\n      ",
  4228      "errors": [
  4229        {
  4230          "message": "Expected type Boolean, found \"true\".",
  4231          "locations": [
  4232            {
  4233              "line": 4,
  4234              "column": 41
  4235            }
  4236          ]
  4237        }
  4238      ]
  4239    },
  4240    {
  4241      "name": "Validate: Values of correct type/Invalid Boolean value/Unquoted into Boolean",
  4242      "rule": "ValuesOfCorrectType",
  4243      "schema": 0,
  4244      "query": "\n        {\n          complicatedArgs {\n            booleanArgField(booleanArg: TRUE)\n          }\n        }\n      ",
  4245      "errors": [
  4246        {
  4247          "message": "Expected type Boolean, found TRUE.",
  4248          "locations": [
  4249            {
  4250              "line": 4,
  4251              "column": 41
  4252            }
  4253          ]
  4254        }
  4255      ]
  4256    },
  4257    {
  4258      "name": "Validate: Values of correct type/Invalid ID value/Float into ID",
  4259      "rule": "ValuesOfCorrectType",
  4260      "schema": 0,
  4261      "query": "\n        {\n          complicatedArgs {\n            idArgField(idArg: 1.0)\n          }\n        }\n      ",
  4262      "errors": [
  4263        {
  4264          "message": "Expected type ID, found 1.0.",
  4265          "locations": [
  4266            {
  4267              "line": 4,
  4268              "column": 31
  4269            }
  4270          ]
  4271        }
  4272      ]
  4273    },
  4274    {
  4275      "name": "Validate: Values of correct type/Invalid ID value/Boolean into ID",
  4276      "rule": "ValuesOfCorrectType",
  4277      "schema": 0,
  4278      "query": "\n        {\n          complicatedArgs {\n            idArgField(idArg: true)\n          }\n        }\n      ",
  4279      "errors": [
  4280        {
  4281          "message": "Expected type ID, found true.",
  4282          "locations": [
  4283            {
  4284              "line": 4,
  4285              "column": 31
  4286            }
  4287          ]
  4288        }
  4289      ]
  4290    },
  4291    {
  4292      "name": "Validate: Values of correct type/Invalid ID value/Unquoted into ID",
  4293      "rule": "ValuesOfCorrectType",
  4294      "schema": 0,
  4295      "query": "\n        {\n          complicatedArgs {\n            idArgField(idArg: SOMETHING)\n          }\n        }\n      ",
  4296      "errors": [
  4297        {
  4298          "message": "Expected type ID, found SOMETHING.",
  4299          "locations": [
  4300            {
  4301              "line": 4,
  4302              "column": 31
  4303            }
  4304          ]
  4305        }
  4306      ]
  4307    },
  4308    {
  4309      "name": "Validate: Values of correct type/Invalid Enum value/Int into Enum",
  4310      "rule": "ValuesOfCorrectType",
  4311      "schema": 0,
  4312      "query": "\n        {\n          dog {\n            doesKnowCommand(dogCommand: 2)\n          }\n        }\n      ",
  4313      "errors": [
  4314        {
  4315          "message": "Expected type DogCommand, found 2.",
  4316          "locations": [
  4317            {
  4318              "line": 4,
  4319              "column": 41
  4320            }
  4321          ]
  4322        }
  4323      ]
  4324    },
  4325    {
  4326      "name": "Validate: Values of correct type/Invalid Enum value/Float into Enum",
  4327      "rule": "ValuesOfCorrectType",
  4328      "schema": 0,
  4329      "query": "\n        {\n          dog {\n            doesKnowCommand(dogCommand: 1.0)\n          }\n        }\n      ",
  4330      "errors": [
  4331        {
  4332          "message": "Expected type DogCommand, found 1.0.",
  4333          "locations": [
  4334            {
  4335              "line": 4,
  4336              "column": 41
  4337            }
  4338          ]
  4339        }
  4340      ]
  4341    },
  4342    {
  4343      "name": "Validate: Values of correct type/Invalid Enum value/String into Enum",
  4344      "rule": "ValuesOfCorrectType",
  4345      "schema": 0,
  4346      "query": "\n        {\n          dog {\n            doesKnowCommand(dogCommand: \"SIT\")\n          }\n        }\n      ",
  4347      "errors": [
  4348        {
  4349          "message": "Expected type DogCommand, found \"SIT\"; Did you mean the enum value SIT?",
  4350          "locations": [
  4351            {
  4352              "line": 4,
  4353              "column": 41
  4354            }
  4355          ]
  4356        }
  4357      ]
  4358    },
  4359    {
  4360      "name": "Validate: Values of correct type/Invalid Enum value/Boolean into Enum",
  4361      "rule": "ValuesOfCorrectType",
  4362      "schema": 0,
  4363      "query": "\n        {\n          dog {\n            doesKnowCommand(dogCommand: true)\n          }\n        }\n      ",
  4364      "errors": [
  4365        {
  4366          "message": "Expected type DogCommand, found true.",
  4367          "locations": [
  4368            {
  4369              "line": 4,
  4370              "column": 41
  4371            }
  4372          ]
  4373        }
  4374      ]
  4375    },
  4376    {
  4377      "name": "Validate: Values of correct type/Invalid Enum value/Unknown Enum Value into Enum",
  4378      "rule": "ValuesOfCorrectType",
  4379      "schema": 0,
  4380      "query": "\n        {\n          dog {\n            doesKnowCommand(dogCommand: JUGGLE)\n          }\n        }\n      ",
  4381      "errors": [
  4382        {
  4383          "message": "Expected type DogCommand, found JUGGLE.",
  4384          "locations": [
  4385            {
  4386              "line": 4,
  4387              "column": 41
  4388            }
  4389          ]
  4390        }
  4391      ]
  4392    },
  4393    {
  4394      "name": "Validate: Values of correct type/Invalid Enum value/Different case Enum Value into Enum",
  4395      "rule": "ValuesOfCorrectType",
  4396      "schema": 0,
  4397      "query": "\n        {\n          dog {\n            doesKnowCommand(dogCommand: sit)\n          }\n        }\n      ",
  4398      "errors": [
  4399        {
  4400          "message": "Expected type DogCommand, found sit; Did you mean the enum value SIT?",
  4401          "locations": [
  4402            {
  4403              "line": 4,
  4404              "column": 41
  4405            }
  4406          ]
  4407        }
  4408      ]
  4409    },
  4410    {
  4411      "name": "Validate: Values of correct type/Valid List value/Good list value",
  4412      "rule": "ValuesOfCorrectType",
  4413      "schema": 0,
  4414      "query": "\n        {\n          complicatedArgs {\n            stringListArgField(stringListArg: [\"one\", null, \"two\"])\n          }\n        }\n      ",
  4415      "errors": []
  4416    },
  4417    {
  4418      "name": "Validate: Values of correct type/Valid List value/Empty list value",
  4419      "rule": "ValuesOfCorrectType",
  4420      "schema": 0,
  4421      "query": "\n        {\n          complicatedArgs {\n            stringListArgField(stringListArg: [])\n          }\n        }\n      ",
  4422      "errors": []
  4423    },
  4424    {
  4425      "name": "Validate: Values of correct type/Valid List value/Null value",
  4426      "rule": "ValuesOfCorrectType",
  4427      "schema": 0,
  4428      "query": "\n        {\n          complicatedArgs {\n            stringListArgField(stringListArg: null)\n          }\n        }\n      ",
  4429      "errors": []
  4430    },
  4431    {
  4432      "name": "Validate: Values of correct type/Valid List value/Single value into List",
  4433      "rule": "ValuesOfCorrectType",
  4434      "schema": 0,
  4435      "query": "\n        {\n          complicatedArgs {\n            stringListArgField(stringListArg: \"one\")\n          }\n        }\n      ",
  4436      "errors": []
  4437    },
  4438    {
  4439      "name": "Validate: Values of correct type/Invalid List value/Incorrect item type",
  4440      "rule": "ValuesOfCorrectType",
  4441      "schema": 0,
  4442      "query": "\n        {\n          complicatedArgs {\n            stringListArgField(stringListArg: [\"one\", 2])\n          }\n        }\n      ",
  4443      "errors": [
  4444        {
  4445          "message": "Expected type String, found 2.",
  4446          "locations": [
  4447            {
  4448              "line": 4,
  4449              "column": 55
  4450            }
  4451          ]
  4452        }
  4453      ]
  4454    },
  4455    {
  4456      "name": "Validate: Values of correct type/Invalid List value/Single value of incorrect type",
  4457      "rule": "ValuesOfCorrectType",
  4458      "schema": 0,
  4459      "query": "\n        {\n          complicatedArgs {\n            stringListArgField(stringListArg: 1)\n          }\n        }\n      ",
  4460      "errors": [
  4461        {
  4462          "message": "Expected type [String], found 1.",
  4463          "locations": [
  4464            {
  4465              "line": 4,
  4466              "column": 47
  4467            }
  4468          ]
  4469        }
  4470      ]
  4471    },
  4472    {
  4473      "name": "Validate: Values of correct type/Valid non-nullable value/Arg on optional arg",
  4474      "rule": "ValuesOfCorrectType",
  4475      "schema": 0,
  4476      "query": "\n        {\n          dog {\n            isHousetrained(atOtherHomes: true)\n          }\n        }\n      ",
  4477      "errors": []
  4478    },
  4479    {
  4480      "name": "Validate: Values of correct type/Valid non-nullable value/No Arg on optional arg",
  4481      "rule": "ValuesOfCorrectType",
  4482      "schema": 0,
  4483      "query": "\n        {\n          dog {\n            isHousetrained\n          }\n        }\n      ",
  4484      "errors": []
  4485    },
  4486    {
  4487      "name": "Validate: Values of correct type/Valid non-nullable value/Multiple args",
  4488      "rule": "ValuesOfCorrectType",
  4489      "schema": 0,
  4490      "query": "\n        {\n          complicatedArgs {\n            multipleReqs(req1: 1, req2: 2)\n          }\n        }\n      ",
  4491      "errors": []
  4492    },
  4493    {
  4494      "name": "Validate: Values of correct type/Valid non-nullable value/Multiple args reverse order",
  4495      "rule": "ValuesOfCorrectType",
  4496      "schema": 0,
  4497      "query": "\n        {\n          complicatedArgs {\n            multipleReqs(req2: 2, req1: 1)\n          }\n        }\n      ",
  4498      "errors": []
  4499    },
  4500    {
  4501      "name": "Validate: Values of correct type/Valid non-nullable value/No args on multiple optional",
  4502      "rule": "ValuesOfCorrectType",
  4503      "schema": 0,
  4504      "query": "\n        {\n          complicatedArgs {\n            multipleOpts\n          }\n        }\n      ",
  4505      "errors": []
  4506    },
  4507    {
  4508      "name": "Validate: Values of correct type/Valid non-nullable value/One arg on multiple optional",
  4509      "rule": "ValuesOfCorrectType",
  4510      "schema": 0,
  4511      "query": "\n        {\n          complicatedArgs {\n            multipleOpts(opt1: 1)\n          }\n        }\n      ",
  4512      "errors": []
  4513    },
  4514    {
  4515      "name": "Validate: Values of correct type/Valid non-nullable value/Second arg on multiple optional",
  4516      "rule": "ValuesOfCorrectType",
  4517      "schema": 0,
  4518      "query": "\n        {\n          complicatedArgs {\n            multipleOpts(opt2: 1)\n          }\n        }\n      ",
  4519      "errors": []
  4520    },
  4521    {
  4522      "name": "Validate: Values of correct type/Valid non-nullable value/Multiple reqs on mixedList",
  4523      "rule": "ValuesOfCorrectType",
  4524      "schema": 0,
  4525      "query": "\n        {\n          complicatedArgs {\n            multipleOptAndReq(req1: 3, req2: 4)\n          }\n        }\n      ",
  4526      "errors": []
  4527    },
  4528    {
  4529      "name": "Validate: Values of correct type/Valid non-nullable value/Multiple reqs and one opt on mixedList",
  4530      "rule": "ValuesOfCorrectType",
  4531      "schema": 0,
  4532      "query": "\n        {\n          complicatedArgs {\n            multipleOptAndReq(req1: 3, req2: 4, opt1: 5)\n          }\n        }\n      ",
  4533      "errors": []
  4534    },
  4535    {
  4536      "name": "Validate: Values of correct type/Valid non-nullable value/All reqs and opts on mixedList",
  4537      "rule": "ValuesOfCorrectType",
  4538      "schema": 0,
  4539      "query": "\n        {\n          complicatedArgs {\n            multipleOptAndReq(req1: 3, req2: 4, opt1: 5, opt2: 6)\n          }\n        }\n      ",
  4540      "errors": []
  4541    },
  4542    {
  4543      "name": "Validate: Values of correct type/Invalid non-nullable value/Incorrect value type",
  4544      "rule": "ValuesOfCorrectType",
  4545      "schema": 0,
  4546      "query": "\n        {\n          complicatedArgs {\n            multipleReqs(req2: \"two\", req1: \"one\")\n          }\n        }\n      ",
  4547      "errors": [
  4548        {
  4549          "message": "Expected type Int!, found \"two\".",
  4550          "locations": [
  4551            {
  4552              "line": 4,
  4553              "column": 32
  4554            }
  4555          ]
  4556        },
  4557        {
  4558          "message": "Expected type Int!, found \"one\".",
  4559          "locations": [
  4560            {
  4561              "line": 4,
  4562              "column": 45
  4563            }
  4564          ]
  4565        }
  4566      ]
  4567    },
  4568    {
  4569      "name": "Validate: Values of correct type/Invalid non-nullable value/Incorrect value and missing argument (ProvidedRequiredArguments)",
  4570      "rule": "ValuesOfCorrectType",
  4571      "schema": 0,
  4572      "query": "\n        {\n          complicatedArgs {\n            multipleReqs(req1: \"one\")\n          }\n        }\n      ",
  4573      "errors": [
  4574        {
  4575          "message": "Expected type Int!, found \"one\".",
  4576          "locations": [
  4577            {
  4578              "line": 4,
  4579              "column": 32
  4580            }
  4581          ]
  4582        }
  4583      ]
  4584    },
  4585    {
  4586      "name": "Validate: Values of correct type/Invalid non-nullable value/Null value",
  4587      "rule": "ValuesOfCorrectType",
  4588      "schema": 0,
  4589      "query": "\n        {\n          complicatedArgs {\n            multipleReqs(req1: null)\n          }\n        }\n      ",
  4590      "errors": [
  4591        {
  4592          "message": "Expected type Int!, found null.",
  4593          "locations": [
  4594            {
  4595              "line": 4,
  4596              "column": 32
  4597            }
  4598          ]
  4599        }
  4600      ]
  4601    },
  4602    {
  4603      "name": "Validate: Values of correct type/Valid input object value/Optional arg, despite required field in type",
  4604      "rule": "ValuesOfCorrectType",
  4605      "schema": 0,
  4606      "query": "\n        {\n          complicatedArgs {\n            complexArgField\n          }\n        }\n      ",
  4607      "errors": []
  4608    },
  4609    {
  4610      "name": "Validate: Values of correct type/Valid input object value/Partial object, only required",
  4611      "rule": "ValuesOfCorrectType",
  4612      "schema": 0,
  4613      "query": "\n        {\n          complicatedArgs {\n            complexArgField(complexArg: { requiredField: true })\n          }\n        }\n      ",
  4614      "errors": []
  4615    },
  4616    {
  4617      "name": "Validate: Values of correct type/Valid input object value/Partial object, required field can be falsey",
  4618      "rule": "ValuesOfCorrectType",
  4619      "schema": 0,
  4620      "query": "\n        {\n          complicatedArgs {\n            complexArgField(complexArg: { requiredField: false })\n          }\n        }\n      ",
  4621      "errors": []
  4622    },
  4623    {
  4624      "name": "Validate: Values of correct type/Valid input object value/Partial object, including required",
  4625      "rule": "ValuesOfCorrectType",
  4626      "schema": 0,
  4627      "query": "\n        {\n          complicatedArgs {\n            complexArgField(complexArg: { requiredField: true, intField: 4 })\n          }\n        }\n      ",
  4628      "errors": []
  4629    },
  4630    {
  4631      "name": "Validate: Values of correct type/Valid input object value/Full object",
  4632      "rule": "ValuesOfCorrectType",
  4633      "schema": 0,
  4634      "query": "\n        {\n          complicatedArgs {\n            complexArgField(complexArg: {\n              requiredField: true,\n              intField: 4,\n              stringField: \"foo\",\n              booleanField: false,\n              stringListField: [\"one\", \"two\"]\n            })\n          }\n        }\n      ",
  4635      "errors": []
  4636    },
  4637    {
  4638      "name": "Validate: Values of correct type/Valid input object value/Full object with fields in different order",
  4639      "rule": "ValuesOfCorrectType",
  4640      "schema": 0,
  4641      "query": "\n        {\n          complicatedArgs {\n            complexArgField(complexArg: {\n              stringListField: [\"one\", \"two\"],\n              booleanField: false,\n              requiredField: true,\n              stringField: \"foo\",\n              intField: 4,\n            })\n          }\n        }\n      ",
  4642      "errors": []
  4643    },
  4644    {
  4645      "name": "Validate: Values of correct type/Invalid input object value/Partial object, missing required",
  4646      "rule": "ValuesOfCorrectType",
  4647      "schema": 0,
  4648      "query": "\n        {\n          complicatedArgs {\n            complexArgField(complexArg: { intField: 4 })\n          }\n        }\n      ",
  4649      "errors": [
  4650        {
  4651          "message": "Field ComplexInput.requiredField of required type Boolean! was not provided.",
  4652          "locations": [
  4653            {
  4654              "line": 4,
  4655              "column": 41
  4656            }
  4657          ]
  4658        }
  4659      ]
  4660    },
  4661    {
  4662      "name": "Validate: Values of correct type/Invalid input object value/Partial object, invalid field type",
  4663      "rule": "ValuesOfCorrectType",
  4664      "schema": 0,
  4665      "query": "\n        {\n          complicatedArgs {\n            complexArgField(complexArg: {\n              stringListField: [\"one\", 2],\n              requiredField: true,\n            })\n          }\n        }\n      ",
  4666      "errors": [
  4667        {
  4668          "message": "Expected type String, found 2.",
  4669          "locations": [
  4670            {
  4671              "line": 5,
  4672              "column": 40
  4673            }
  4674          ]
  4675        }
  4676      ]
  4677    },
  4678    {
  4679      "name": "Validate: Values of correct type/Invalid input object value/Partial object, null to non-null field",
  4680      "rule": "ValuesOfCorrectType",
  4681      "schema": 0,
  4682      "query": "\n        {\n          complicatedArgs {\n            complexArgField(complexArg: {\n              requiredField: true,\n              nonNullField: null,\n            })\n          }\n        }\n      ",
  4683      "errors": [
  4684        {
  4685          "message": "Expected type Boolean!, found null.",
  4686          "locations": [
  4687            {
  4688              "line": 6,
  4689              "column": 29
  4690            }
  4691          ]
  4692        }
  4693      ]
  4694    },
  4695    {
  4696      "name": "Validate: Values of correct type/Invalid input object value/Partial object, unknown field arg",
  4697      "rule": "ValuesOfCorrectType",
  4698      "schema": 0,
  4699      "query": "\n        {\n          complicatedArgs {\n            complexArgField(complexArg: {\n              requiredField: true,\n              unknownField: \"value\"\n            })\n          }\n        }\n      ",
  4700      "errors": [
  4701        {
  4702          "message": "Field \"unknownField\" is not defined by type ComplexInput; Did you mean nonNullField, intField, or booleanField?",
  4703          "locations": [
  4704            {
  4705              "line": 6,
  4706              "column": 15
  4707            }
  4708          ]
  4709        }
  4710      ]
  4711    },
  4712    {
  4713      "name": "Validate: Values of correct type/Invalid input object value/reports original error for custom scalar which throws",
  4714      "rule": "ValuesOfCorrectType",
  4715      "schema": 0,
  4716      "query": "\n        {\n          invalidArg(arg: 123)\n        }\n      ",
  4717      "errors": [
  4718        {
  4719          "message": "Expected type Invalid, found 123; Invalid scalar is always invalid: 123",
  4720          "locations": [
  4721            {
  4722              "line": 3,
  4723              "column": 27
  4724            }
  4725          ]
  4726        }
  4727      ]
  4728    },
  4729    {
  4730      "name": "Validate: Values of correct type/Invalid input object value/allows custom scalar to accept complex literals",
  4731      "rule": "ValuesOfCorrectType",
  4732      "schema": 0,
  4733      "query": "\n        {\n          test1: anyArg(arg: 123)\n          test2: anyArg(arg: \"abc\")\n          test3: anyArg(arg: [123, \"abc\"])\n          test4: anyArg(arg: {deep: [123, \"abc\"]})\n        }\n      ",
  4734      "errors": []
  4735    },
  4736    {
  4737      "name": "Validate: Values of correct type/Directive arguments/with directives of valid types",
  4738      "rule": "ValuesOfCorrectType",
  4739      "schema": 0,
  4740      "query": "\n        {\n          dog @include(if: true) {\n            name\n          }\n          human @skip(if: false) {\n            name\n          }\n        }\n      ",
  4741      "errors": []
  4742    },
  4743    {
  4744      "name": "Validate: Values of correct type/Directive arguments/with directive with incorrect types",
  4745      "rule": "ValuesOfCorrectType",
  4746      "schema": 0,
  4747      "query": "\n        {\n          dog @include(if: \"yes\") {\n            name @skip(if: ENUM)\n          }\n        }\n      ",
  4748      "errors": [
  4749        {
  4750          "message": "Expected type Boolean!, found \"yes\".",
  4751          "locations": [
  4752            {
  4753              "line": 3,
  4754              "column": 28
  4755            }
  4756          ]
  4757        },
  4758        {
  4759          "message": "Expected type Boolean!, found ENUM.",
  4760          "locations": [
  4761            {
  4762              "line": 4,
  4763              "column": 28
  4764            }
  4765          ]
  4766        }
  4767      ]
  4768    },
  4769    {
  4770      "name": "Validate: Values of correct type/Variable default values/variables with valid default values",
  4771      "rule": "ValuesOfCorrectType",
  4772      "schema": 0,
  4773      "query": "\n        query WithDefaultValues(\n          $a: Int = 1,\n          $b: String = \"ok\",\n          $c: ComplexInput = { requiredField: true, intField: 3 }\n          $d: Int! = 123\n        ) {\n          dog { name }\n        }\n      ",
  4774      "errors": []
  4775    },
  4776    {
  4777      "name": "Validate: Values of correct type/Variable default values/variables with valid default null values",
  4778      "rule": "ValuesOfCorrectType",
  4779      "schema": 0,
  4780      "query": "\n        query WithDefaultValues(\n          $a: Int = null,\n          $b: String = null,\n          $c: ComplexInput = { requiredField: true, intField: null }\n        ) {\n          dog { name }\n        }\n      ",
  4781      "errors": []
  4782    },
  4783    {
  4784      "name": "Validate: Values of correct type/Variable default values/variables with invalid default null values",
  4785      "rule": "ValuesOfCorrectType",
  4786      "schema": 0,
  4787      "query": "\n        query WithDefaultValues(\n          $a: Int! = null,\n          $b: String! = null,\n          $c: ComplexInput = { requiredField: null, intField: null }\n        ) {\n          dog { name }\n        }\n      ",
  4788      "errors": [
  4789        {
  4790          "message": "Expected type Int!, found null.",
  4791          "locations": [
  4792            {
  4793              "line": 3,
  4794              "column": 22
  4795            }
  4796          ]
  4797        },
  4798        {
  4799          "message": "Expected type String!, found null.",
  4800          "locations": [
  4801            {
  4802              "line": 4,
  4803              "column": 25
  4804            }
  4805          ]
  4806        },
  4807        {
  4808          "message": "Expected type Boolean!, found null.",
  4809          "locations": [
  4810            {
  4811              "line": 5,
  4812              "column": 47
  4813            }
  4814          ]
  4815        }
  4816      ]
  4817    },
  4818    {
  4819      "name": "Validate: Values of correct type/Variable default values/variables with invalid default values",
  4820      "rule": "ValuesOfCorrectType",
  4821      "schema": 0,
  4822      "query": "\n        query InvalidDefaultValues(\n          $a: Int = \"one\",\n          $b: String = 4,\n          $c: ComplexInput = \"notverycomplex\"\n        ) {\n          dog { name }\n        }\n      ",
  4823      "errors": [
  4824        {
  4825          "message": "Expected type Int, found \"one\".",
  4826          "locations": [
  4827            {
  4828              "line": 3,
  4829              "column": 21
  4830            }
  4831          ]
  4832        },
  4833        {
  4834          "message": "Expected type String, found 4.",
  4835          "locations": [
  4836            {
  4837              "line": 4,
  4838              "column": 24
  4839            }
  4840          ]
  4841        },
  4842        {
  4843          "message": "Expected type ComplexInput, found \"notverycomplex\".",
  4844          "locations": [
  4845            {
  4846              "line": 5,
  4847              "column": 30
  4848            }
  4849          ]
  4850        }
  4851      ]
  4852    },
  4853    {
  4854      "name": "Validate: Values of correct type/Variable default values/variables with complex invalid default values",
  4855      "rule": "ValuesOfCorrectType",
  4856      "schema": 0,
  4857      "query": "\n        query WithDefaultValues(\n          $a: ComplexInput = { requiredField: 123, intField: \"abc\" }\n        ) {\n          dog { name }\n        }\n      ",
  4858      "errors": [
  4859        {
  4860          "message": "Expected type Boolean!, found 123.",
  4861          "locations": [
  4862            {
  4863              "line": 3,
  4864              "column": 47
  4865            }
  4866          ]
  4867        },
  4868        {
  4869          "message": "Expected type Int, found \"abc\".",
  4870          "locations": [
  4871            {
  4872              "line": 3,
  4873              "column": 62
  4874            }
  4875          ]
  4876        }
  4877      ]
  4878    },
  4879    {
  4880      "name": "Validate: Values of correct type/Variable default values/complex variables missing required field",
  4881      "rule": "ValuesOfCorrectType",
  4882      "schema": 0,
  4883      "query": "\n        query MissingRequiredField($a: ComplexInput = {intField: 3}) {\n          dog { name }\n        }\n      ",
  4884      "errors": [
  4885        {
  4886          "message": "Field ComplexInput.requiredField of required type Boolean! was not provided.",
  4887          "locations": [
  4888            {
  4889              "line": 2,
  4890              "column": 55
  4891            }
  4892          ]
  4893        }
  4894      ]
  4895    },
  4896    {
  4897      "name": "Validate: Values of correct type/Variable default values/list variables with invalid item",
  4898      "rule": "ValuesOfCorrectType",
  4899      "schema": 0,
  4900      "query": "\n        query InvalidItem($a: [String] = [\"one\", 2]) {\n          dog { name }\n        }\n      ",
  4901      "errors": [
  4902        {
  4903          "message": "Expected type String, found 2.",
  4904          "locations": [
  4905            {
  4906              "line": 2,
  4907              "column": 50
  4908            }
  4909          ]
  4910        }
  4911      ]
  4912    },
  4913    {
  4914      "name": "Validate: Variables are input types/input types are valid",
  4915      "rule": "VariablesAreInputTypes",
  4916      "schema": 0,
  4917      "query": "\n      query Foo($a: String, $b: [Boolean!]!, $c: ComplexInput) {\n        field(a: $a, b: $b, c: $c)\n      }\n    ",
  4918      "errors": []
  4919    },
  4920    {
  4921      "name": "Validate: Variables are input types/output types are invalid",
  4922      "rule": "VariablesAreInputTypes",
  4923      "schema": 0,
  4924      "query": "\n      query Foo($a: Dog, $b: [[CatOrDog!]]!, $c: Pet) {\n        field(a: $a, b: $b, c: $c)\n      }\n    ",
  4925      "errors": [
  4926        {
  4927          "locations": [
  4928            {
  4929              "line": 2,
  4930              "column": 21
  4931            }
  4932          ],
  4933          "message": "Variable \"$a\" cannot be non-input type \"Dog\"."
  4934        },
  4935        {
  4936          "locations": [
  4937            {
  4938              "line": 2,
  4939              "column": 30
  4940            }
  4941          ],
  4942          "message": "Variable \"$b\" cannot be non-input type \"[[CatOrDog!]]!\"."
  4943        },
  4944        {
  4945          "locations": [
  4946            {
  4947              "line": 2,
  4948              "column": 50
  4949            }
  4950          ],
  4951          "message": "Variable \"$c\" cannot be non-input type \"Pet\"."
  4952        }
  4953      ]
  4954    },
  4955    {
  4956      "name": "Validate: Variables are in allowed positions/Boolean => Boolean",
  4957      "rule": "VariablesInAllowedPosition",
  4958      "schema": 0,
  4959      "query": "\n      query Query($booleanArg: Boolean)\n      {\n        complicatedArgs {\n          booleanArgField(booleanArg: $booleanArg)\n        }\n      }\n    ",
  4960      "errors": []
  4961    },
  4962    {
  4963      "name": "Validate: Variables are in allowed positions/Boolean => Boolean within fragment",
  4964      "rule": "VariablesInAllowedPosition",
  4965      "schema": 0,
  4966      "query": "\n      fragment booleanArgFrag on ComplicatedArgs {\n        booleanArgField(booleanArg: $booleanArg)\n      }\n      query Query($booleanArg: Boolean)\n      {\n        complicatedArgs {\n          ...booleanArgFrag\n        }\n      }\n    ",
  4967      "errors": []
  4968    },
  4969    {
  4970      "name": "Validate: Variables are in allowed positions/Boolean => Boolean within fragment",
  4971      "rule": "VariablesInAllowedPosition",
  4972      "schema": 0,
  4973      "query": "\n      query Query($booleanArg: Boolean)\n      {\n        complicatedArgs {\n          ...booleanArgFrag\n        }\n      }\n      fragment booleanArgFrag on ComplicatedArgs {\n        booleanArgField(booleanArg: $booleanArg)\n      }\n    ",
  4974      "errors": []
  4975    },
  4976    {
  4977      "name": "Validate: Variables are in allowed positions/Boolean! => Boolean",
  4978      "rule": "VariablesInAllowedPosition",
  4979      "schema": 0,
  4980      "query": "\n      query Query($nonNullBooleanArg: Boolean!)\n      {\n        complicatedArgs {\n          booleanArgField(booleanArg: $nonNullBooleanArg)\n        }\n      }\n    ",
  4981      "errors": []
  4982    },
  4983    {
  4984      "name": "Validate: Variables are in allowed positions/Boolean! => Boolean within fragment",
  4985      "rule": "VariablesInAllowedPosition",
  4986      "schema": 0,
  4987      "query": "\n      fragment booleanArgFrag on ComplicatedArgs {\n        booleanArgField(booleanArg: $nonNullBooleanArg)\n      }\n\n      query Query($nonNullBooleanArg: Boolean!)\n      {\n        complicatedArgs {\n          ...booleanArgFrag\n        }\n      }\n    ",
  4988      "errors": []
  4989    },
  4990    {
  4991      "name": "Validate: Variables are in allowed positions/[String] => [String]",
  4992      "rule": "VariablesInAllowedPosition",
  4993      "schema": 0,
  4994      "query": "\n      query Query($stringListVar: [String])\n      {\n        complicatedArgs {\n          stringListArgField(stringListArg: $stringListVar)\n        }\n      }\n    ",
  4995      "errors": []
  4996    },
  4997    {
  4998      "name": "Validate: Variables are in allowed positions/[String!] => [String]",
  4999      "rule": "VariablesInAllowedPosition",
  5000      "schema": 0,
  5001      "query": "\n      query Query($stringListVar: [String!])\n      {\n        complicatedArgs {\n          stringListArgField(stringListArg: $stringListVar)\n        }\n      }\n    ",
  5002      "errors": []
  5003    },
  5004    {
  5005      "name": "Validate: Variables are in allowed positions/String => [String] in item position",
  5006      "rule": "VariablesInAllowedPosition",
  5007      "schema": 0,
  5008      "query": "\n      query Query($stringVar: String)\n      {\n        complicatedArgs {\n          stringListArgField(stringListArg: [$stringVar])\n        }\n      }\n    ",
  5009      "errors": []
  5010    },
  5011    {
  5012      "name": "Validate: Variables are in allowed positions/String! => [String] in item position",
  5013      "rule": "VariablesInAllowedPosition",
  5014      "schema": 0,
  5015      "query": "\n      query Query($stringVar: String!)\n      {\n        complicatedArgs {\n          stringListArgField(stringListArg: [$stringVar])\n        }\n      }\n    ",
  5016      "errors": []
  5017    },
  5018    {
  5019      "name": "Validate: Variables are in allowed positions/ComplexInput => ComplexInput",
  5020      "rule": "VariablesInAllowedPosition",
  5021      "schema": 0,
  5022      "query": "\n      query Query($complexVar: ComplexInput)\n      {\n        complicatedArgs {\n          complexArgField(complexArg: $complexVar)\n        }\n      }\n    ",
  5023      "errors": []
  5024    },
  5025    {
  5026      "name": "Validate: Variables are in allowed positions/ComplexInput => ComplexInput in field position",
  5027      "rule": "VariablesInAllowedPosition",
  5028      "schema": 0,
  5029      "query": "\n      query Query($boolVar: Boolean = false)\n      {\n        complicatedArgs {\n          complexArgField(complexArg: {requiredArg: $boolVar})\n        }\n      }\n    ",
  5030      "errors": []
  5031    },
  5032    {
  5033      "name": "Validate: Variables are in allowed positions/Boolean! => Boolean! in directive",
  5034      "rule": "VariablesInAllowedPosition",
  5035      "schema": 0,
  5036      "query": "\n      query Query($boolVar: Boolean!)\n      {\n        dog @include(if: $boolVar)\n      }\n    ",
  5037      "errors": []
  5038    },
  5039    {
  5040      "name": "Validate: Variables are in allowed positions/Int => Int!",
  5041      "rule": "VariablesInAllowedPosition",
  5042      "schema": 0,
  5043      "query": "\n      query Query($intArg: Int) {\n        complicatedArgs {\n          nonNullIntArgField(nonNullIntArg: $intArg)\n        }\n      }\n    ",
  5044      "errors": [
  5045        {
  5046          "message": "Variable \"$intArg\" of type \"Int\" used in position expecting type \"Int!\".",
  5047          "locations": [
  5048            {
  5049              "line": 2,
  5050              "column": 19
  5051            },
  5052            {
  5053              "line": 4,
  5054              "column": 45
  5055            }
  5056          ]
  5057        }
  5058      ]
  5059    },
  5060    {
  5061      "name": "Validate: Variables are in allowed positions/Int => Int! within fragment",
  5062      "rule": "VariablesInAllowedPosition",
  5063      "schema": 0,
  5064      "query": "\n      fragment nonNullIntArgFieldFrag on ComplicatedArgs {\n        nonNullIntArgField(nonNullIntArg: $intArg)\n      }\n\n      query Query($intArg: Int) {\n        complicatedArgs {\n          ...nonNullIntArgFieldFrag\n        }\n      }\n    ",
  5065      "errors": [
  5066        {
  5067          "message": "Variable \"$intArg\" of type \"Int\" used in position expecting type \"Int!\".",
  5068          "locations": [
  5069            {
  5070              "line": 6,
  5071              "column": 19
  5072            },
  5073            {
  5074              "line": 3,
  5075              "column": 43
  5076            }
  5077          ]
  5078        }
  5079      ]
  5080    },
  5081    {
  5082      "name": "Validate: Variables are in allowed positions/Int => Int! within nested fragment",
  5083      "rule": "VariablesInAllowedPosition",
  5084      "schema": 0,
  5085      "query": "\n      fragment outerFrag on ComplicatedArgs {\n        ...nonNullIntArgFieldFrag\n      }\n\n      fragment nonNullIntArgFieldFrag on ComplicatedArgs {\n        nonNullIntArgField(nonNullIntArg: $intArg)\n      }\n\n      query Query($intArg: Int) {\n        complicatedArgs {\n          ...outerFrag\n        }\n      }\n    ",
  5086      "errors": [
  5087        {
  5088          "message": "Variable \"$intArg\" of type \"Int\" used in position expecting type \"Int!\".",
  5089          "locations": [
  5090            {
  5091              "line": 10,
  5092              "column": 19
  5093            },
  5094            {
  5095              "line": 7,
  5096              "column": 43
  5097            }
  5098          ]
  5099        }
  5100      ]
  5101    },
  5102    {
  5103      "name": "Validate: Variables are in allowed positions/String over Boolean",
  5104      "rule": "VariablesInAllowedPosition",
  5105      "schema": 0,
  5106      "query": "\n      query Query($stringVar: String) {\n        complicatedArgs {\n          booleanArgField(booleanArg: $stringVar)\n        }\n      }\n    ",
  5107      "errors": [
  5108        {
  5109          "message": "Variable \"$stringVar\" of type \"String\" used in position expecting type \"Boolean\".",
  5110          "locations": [
  5111            {
  5112              "line": 2,
  5113              "column": 19
  5114            },
  5115            {
  5116              "line": 4,
  5117              "column": 39
  5118            }
  5119          ]
  5120        }
  5121      ]
  5122    },
  5123    {
  5124      "name": "Validate: Variables are in allowed positions/String => [String]",
  5125      "rule": "VariablesInAllowedPosition",
  5126      "schema": 0,
  5127      "query": "\n      query Query($stringVar: String) {\n        complicatedArgs {\n          stringListArgField(stringListArg: $stringVar)\n        }\n      }\n    ",
  5128      "errors": [
  5129        {
  5130          "message": "Variable \"$stringVar\" of type \"String\" used in position expecting type \"[String]\".",
  5131          "locations": [
  5132            {
  5133              "line": 2,
  5134              "column": 19
  5135            },
  5136            {
  5137              "line": 4,
  5138              "column": 45
  5139            }
  5140          ]
  5141        }
  5142      ]
  5143    },
  5144    {
  5145      "name": "Validate: Variables are in allowed positions/Boolean => Boolean! in directive",
  5146      "rule": "VariablesInAllowedPosition",
  5147      "schema": 0,
  5148      "query": "\n      query Query($boolVar: Boolean) {\n        dog @include(if: $boolVar)\n      }\n    ",
  5149      "errors": [
  5150        {
  5151          "message": "Variable \"$boolVar\" of type \"Boolean\" used in position expecting type \"Boolean!\".",
  5152          "locations": [
  5153            {
  5154              "line": 2,
  5155              "column": 19
  5156            },
  5157            {
  5158              "line": 3,
  5159              "column": 26
  5160            }
  5161          ]
  5162        }
  5163      ]
  5164    },
  5165    {
  5166      "name": "Validate: Variables are in allowed positions/String => Boolean! in directive",
  5167      "rule": "VariablesInAllowedPosition",
  5168      "schema": 0,
  5169      "query": "\n      query Query($stringVar: String) {\n        dog @include(if: $stringVar)\n      }\n    ",
  5170      "errors": [
  5171        {
  5172          "message": "Variable \"$stringVar\" of type \"String\" used in position expecting type \"Boolean!\".",
  5173          "locations": [
  5174            {
  5175              "line": 2,
  5176              "column": 19
  5177            },
  5178            {
  5179              "line": 3,
  5180              "column": 26
  5181            }
  5182          ]
  5183        }
  5184      ]
  5185    },
  5186    {
  5187      "name": "Validate: Variables are in allowed positions/[String] => [String!]",
  5188      "rule": "VariablesInAllowedPosition",
  5189      "schema": 0,
  5190      "query": "\n      query Query($stringListVar: [String])\n      {\n        complicatedArgs {\n          stringListNonNullArgField(stringListNonNullArg: $stringListVar)\n        }\n      }\n    ",
  5191      "errors": [
  5192        {
  5193          "message": "Variable \"$stringListVar\" of type \"[String]\" used in position expecting type \"[String!]\".",
  5194          "locations": [
  5195            {
  5196              "line": 2,
  5197              "column": 19
  5198            },
  5199            {
  5200              "line": 5,
  5201              "column": 59
  5202            }
  5203          ]
  5204        }
  5205      ]
  5206    },
  5207    {
  5208      "name": "Validate: Variables are in allowed positions/Allows optional (nullable) variables with default values/Int => Int! fails when variable provides null default value",
  5209      "rule": "VariablesInAllowedPosition",
  5210      "schema": 0,
  5211      "query": "\n        query Query($intVar: Int = null) {\n          complicatedArgs {\n            nonNullIntArgField(nonNullIntArg: $intVar)\n          }\n        }",
  5212      "errors": [
  5213        {
  5214          "message": "Variable \"$intVar\" of type \"Int\" used in position expecting type \"Int!\".",
  5215          "locations": [
  5216            {
  5217              "line": 2,
  5218              "column": 21
  5219            },
  5220            {
  5221              "line": 4,
  5222              "column": 47
  5223            }
  5224          ]
  5225        }
  5226      ]
  5227    },
  5228    {
  5229      "name": "Validate: Variables are in allowed positions/Allows optional (nullable) variables with default values/Int => Int! when variable provides non-null default value",
  5230      "rule": "VariablesInAllowedPosition",
  5231      "schema": 0,
  5232      "query": "\n        query Query($intVar: Int = 1) {\n          complicatedArgs {\n            nonNullIntArgField(nonNullIntArg: $intVar)\n          }\n        }",
  5233      "errors": []
  5234    },
  5235    {
  5236      "name": "Validate: Variables are in allowed positions/Allows optional (nullable) variables with default values/Int => Int! when optional argument provides default value",
  5237      "rule": "VariablesInAllowedPosition",
  5238      "schema": 0,
  5239      "query": "\n        query Query($intVar: Int) {\n          complicatedArgs {\n            nonNullFieldWithDefault(nonNullIntArg: $intVar)\n          }\n        }",
  5240      "errors": []
  5241    },
  5242    {
  5243      "name": "Validate: Variables are in allowed positions/Allows optional (nullable) variables with default values/Boolean => Boolean! in directive with default value with option",
  5244      "rule": "VariablesInAllowedPosition",
  5245      "schema": 0,
  5246      "query": "\n        query Query($boolVar: Boolean = false) {\n          dog @include(if: $boolVar)\n        }",
  5247      "errors": []
  5248    }
  5249  ]
  5250}

View as plain text