summaryrefslogtreecommitdiff
path: root/tests/Language
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2020-05-13 16:21:48 +0200
committerEugen Wissner <belka@caraus.de>2020-05-13 16:21:48 +0200
commit4c19c88e98bea77ebccc786cd55b30e23ab6e897 (patch)
tree0c4e745ecbed1914852a5dad109687ddf5f9229f /tests/Language
parent9232e08eb96ff6613ee6987d746d530bf2b8e6b2 (diff)
downloadgraphql-4c19c88e98bea77ebccc786cd55b30e23ab6e897.tar.gz
Accept resolvers given by the user as is
Diffstat (limited to 'tests/Language')
-rw-r--r--tests/Language/GraphQL/SchemaSpec.hs31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/Language/GraphQL/SchemaSpec.hs b/tests/Language/GraphQL/SchemaSpec.hs
new file mode 100644
index 0000000..6804150
--- /dev/null
+++ b/tests/Language/GraphQL/SchemaSpec.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE OverloadedStrings #-}
+module Language.GraphQL.SchemaSpec
+ ( spec
+ ) where
+
+import qualified Data.Aeson as Aeson
+import qualified Data.Aeson.Types as Aeson
+import qualified Data.Sequence as Sequence
+import Data.Text (Text)
+import Language.GraphQL.AST.Core
+import Language.GraphQL.Error
+import Language.GraphQL.Schema
+import Test.Hspec (Spec, describe, it, shouldBe)
+
+spec :: Spec
+spec =
+ describe "resolve" $
+ it "ignores invalid __typename" $ do
+ let resolver = object "__typename" $ pure
+ [ scalar "field" $ pure ("T" :: Text)
+ ]
+ schema = resolversToMap [resolver]
+ fields = Sequence.singleton
+ $ SelectionFragment
+ $ Fragment "T" Sequence.empty
+ expected = Aeson.object
+ [ ("data" , Aeson.emptyObject)
+ ]
+
+ actual <- runCollectErrs (resolve schema fields)
+ actual `shouldBe` expected