From b1b6bfcdb902e0cbb97fbe11a59e37676005dee0 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 28 Dec 2023 09:45:39 +0100 Subject: [PATCH] Add a test for the wrong variable location inside an input object for the role checking for unused and undefined variables. --- CHANGELOG.md | 1 + tests/Language/GraphQL/Validate/RulesSpec.hs | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a87e7e..b1e022a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to - `gql` removes not only leading `\n` but also `\r`. - Fix non nullable type string representation in executor error messages. - Fix input objects not being coerced to lists. +- Fix used variables are not found in the properties of input objects. ## [1.2.0.1] - 2023-04-25 ### Fixed diff --git a/tests/Language/GraphQL/Validate/RulesSpec.hs b/tests/Language/GraphQL/Validate/RulesSpec.hs index b0ed59e..0d9faaa 100644 --- a/tests/Language/GraphQL/Validate/RulesSpec.hs +++ b/tests/Language/GraphQL/Validate/RulesSpec.hs @@ -538,7 +538,7 @@ spec = } in validate queryString `shouldContain` [expected] - context "noUndefinedVariablesRule" $ + context "noUndefinedVariablesRule" $ do it "rejects undefined variables" $ let queryString = [gql| query variableIsNotDefinedUsedInSingleFragment { @@ -560,6 +560,20 @@ spec = } in validate queryString `shouldBe` [expected] + xit "gets location of the variable inside an input object" $ + let queryString = [gql| + query { + findDog (complex: { name: $name }) { + name + } + } + |] + expected = Error + { message = "Variable \"$name\" is not defined." + , locations = [AST.Location 2 29] + } + in validate queryString `shouldBe` [expected] + context "noUnusedVariablesRule" $ do it "rejects unused variables" $ let queryString = [gql| @@ -577,7 +591,7 @@ spec = } in validate queryString `shouldBe` [expected] - xit "detects variables in properties of input objects" $ + it "detects variables in properties of input objects" $ let queryString = [gql| query withVar ($name: String!) { findDog (complex: { name: $name }) {