summaryrefslogtreecommitdiff
path: root/tests/Language/GraphQL/SchemaSpec.hs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Language/GraphQL/SchemaSpec.hs')
-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