From 2ce2be5d917091872b45b650b60ac2a23f544916 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 17 Jun 2021 08:15:27 +0200 Subject: Provide location information for interface errors --- tests/Language/GraphQL/ExecuteSpec.hs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'tests/Language/GraphQL/ExecuteSpec.hs') diff --git a/tests/Language/GraphQL/ExecuteSpec.hs b/tests/Language/GraphQL/ExecuteSpec.hs index f5bfd33..815e315 100644 --- a/tests/Language/GraphQL/ExecuteSpec.hs +++ b/tests/Language/GraphQL/ExecuteSpec.hs @@ -218,7 +218,7 @@ spec = $ parse document "" "{ philosopher { school } }" in actual `shouldBe` expected - it "gives location information for invalid interfaces" $ + it "gives location information for non-null unions" $ let data'' = Aeson.object [ "philosopher" .= Aeson.object [ "interest" .= Aeson.Null @@ -234,6 +234,22 @@ spec = $ parse document "" "{ philosopher { interest } }" in actual `shouldBe` expected + it "gives location information for invalid interfaces" $ + let data'' = Aeson.object + [ "philosopher" .= Aeson.object + [ "majorWork" .= Aeson.Null + ] + ] + executionErrors = pure $ Error + { message = "Interface value completion failed." + , locations = [Location 1 17] + , path = [] + } + expected = Response data'' executionErrors + Right (Right actual) = either (pure . parseError) execute' + $ parse document "" "{ philosopher { majorWork { title } } }" + in actual `shouldBe` expected + context "Subscription" $ it "subscribes" $ let data'' = Aeson.object -- cgit v1.2.3