summaryrefslogtreecommitdiff
path: root/tests/Test
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2020-07-15 19:15:31 +0200
committerEugen Wissner <belka@caraus.de>2020-07-15 19:15:31 +0200
commite24386402be444e643d7d9c8ef82c1fe2205c7fc (patch)
treeb30e537f00520194c536caf2d96092493ccc14e5 /tests/Test
parentae2210f6598f166116abebc1163e1523d3bc627c (diff)
downloadgraphql-e24386402be444e643d7d9c8ef82c1fe2205c7fc.tar.gz
Respect subscriptions in the executor
After the last commit there were a few places needed to be adjusted to support subscriptions. This is done and a test case is added. It is important to implement subscriptions now, because they require changes to the library API, and they are a big missing part to finish the executor. When the executor is finished, we can start to provide more stable API without breaking everything every release. Validation and introspection shouldn't require much changes to the API; AST would require some changes to report good errors after the validation - this is one thing I can think of. Fixes #5.
Diffstat (limited to 'tests/Test')
-rw-r--r--tests/Test/DirectiveSpec.hs7
-rw-r--r--tests/Test/FragmentSpec.hs6
-rw-r--r--tests/Test/RootOperationSpec.hs10
-rw-r--r--tests/Test/StarWars/Schema.hs6
4 files changed, 24 insertions, 5 deletions
diff --git a/tests/Test/DirectiveSpec.hs b/tests/Test/DirectiveSpec.hs
index 4d31cb9..fb5c318 100644
--- a/tests/Test/DirectiveSpec.hs
+++ b/tests/Test/DirectiveSpec.hs
@@ -1,3 +1,7 @@
+{- This Source Code Form is subject to the terms of the Mozilla Public License,
+ v. 2.0. If a copy of the MPL was not distributed with this file, You can
+ obtain one at https://mozilla.org/MPL/2.0/. -}
+
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
module Test.DirectiveSpec
@@ -14,7 +18,8 @@ import Test.Hspec (Spec, describe, it, shouldBe)
import Text.RawString.QQ (r)
experimentalResolver :: Schema IO
-experimentalResolver = Schema { query = queryType, mutation = Nothing }
+experimentalResolver = Schema
+ { query = queryType, mutation = Nothing, subscription = Nothing }
where
queryType = Out.ObjectType "Query" Nothing []
$ HashMap.singleton "experimentalField"
diff --git a/tests/Test/FragmentSpec.hs b/tests/Test/FragmentSpec.hs
index af1812c..71d7e9a 100644
--- a/tests/Test/FragmentSpec.hs
+++ b/tests/Test/FragmentSpec.hs
@@ -1,3 +1,7 @@
+{- This Source Code Form is subject to the terms of the Mozilla Public License,
+ v. 2.0. If a copy of the MPL was not distributed with this file, You can
+ obtain one at https://mozilla.org/MPL/2.0/. -}
+
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
module Test.FragmentSpec
@@ -76,7 +80,7 @@ sizeFieldType
toSchema :: Text -> (Text, Value) -> Schema IO
toSchema t (_, resolve) = Schema
- { query = queryType, mutation = Nothing }
+ { query = queryType, mutation = Nothing, subscription = Nothing }
where
unionMember = if t == "Hat" then hatType else shirtType
typeNameField = Out.Field Nothing (Out.NamedScalarType string) mempty
diff --git a/tests/Test/RootOperationSpec.hs b/tests/Test/RootOperationSpec.hs
index 7202104..621d496 100644
--- a/tests/Test/RootOperationSpec.hs
+++ b/tests/Test/RootOperationSpec.hs
@@ -1,3 +1,7 @@
+{- This Source Code Form is subject to the terms of the Mozilla Public License,
+ v. 2.0. If a copy of the MPL was not distributed with this file, You can
+ obtain one at https://mozilla.org/MPL/2.0/. -}
+
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
module Test.RootOperationSpec
@@ -20,8 +24,10 @@ hatType = Out.ObjectType "Hat" Nothing []
schema :: Schema IO
schema = Schema
- (Out.ObjectType "Query" Nothing [] hatFieldResolver)
- (Just $ Out.ObjectType "Mutation" Nothing [] incrementFieldResolver)
+ { query = Out.ObjectType "Query" Nothing [] hatFieldResolver
+ , mutation = Just $ Out.ObjectType "Mutation" Nothing [] incrementFieldResolver
+ , subscription = Nothing
+ }
where
garment = pure $ Object $ HashMap.fromList
[ ("circumference", Int 60)
diff --git a/tests/Test/StarWars/Schema.hs b/tests/Test/StarWars/Schema.hs
index ed3c32c..99200ff 100644
--- a/tests/Test/StarWars/Schema.hs
+++ b/tests/Test/StarWars/Schema.hs
@@ -20,7 +20,11 @@ import Prelude hiding (id)
-- See https://github.com/graphql/graphql-js/blob/master/src/__tests__/starWarsSchema.js
schema :: Schema Identity
-schema = Schema { query = queryType, mutation = Nothing }
+schema = Schema
+ { query = queryType
+ , mutation = Nothing
+ , subscription = Nothing
+ }
where
queryType = Out.ObjectType "Query" Nothing [] $ HashMap.fromList
[ ("hero", heroFieldResolver)