summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2020-07-05 14:36:00 +0200
committerEugen Wissner <belka@caraus.de>2020-07-05 14:36:00 +0200
commita6f9cec413c35abdcb0d04a5550334dd2fa7d472 (patch)
treeb16ce8fd038c02ec60664f60bba8d01b08d8d218 /tests
parentb5157e141e765c1313050cc66a2a323b67f3da79 (diff)
downloadgraphql-a6f9cec413c35abdcb0d04a5550334dd2fa7d472.tar.gz
Handle errors using custom types
Fixes #32.
Diffstat (limited to 'tests')
-rw-r--r--tests/Language/GraphQL/ErrorSpec.hs10
-rw-r--r--tests/Language/GraphQL/ExecuteSpec.hs24
-rw-r--r--tests/Test/StarWars/QuerySpec.hs2
3 files changed, 15 insertions, 21 deletions
diff --git a/tests/Language/GraphQL/ErrorSpec.hs b/tests/Language/GraphQL/ErrorSpec.hs
index 8bb39ed..179f3b0 100644
--- a/tests/Language/GraphQL/ErrorSpec.hs
+++ b/tests/Language/GraphQL/ErrorSpec.hs
@@ -4,6 +4,7 @@ module Language.GraphQL.ErrorSpec
) where
import qualified Data.Aeson as Aeson
+import qualified Data.Sequence as Seq
import Language.GraphQL.Error
import Test.Hspec ( Spec
, describe
@@ -14,11 +15,6 @@ import Test.Hspec ( Spec
spec :: Spec
spec = describe "singleError" $
it "constructs an error with the given message" $
- let expected = Aeson.object
- [
- ("errors", Aeson.toJSON
- [ Aeson.object [("message", "Message.")]
- ]
- )
- ]
+ let errors'' = Seq.singleton $ Error "Message." 0 0
+ expected = Response Aeson.Null errors''
in singleError "Message." `shouldBe` expected
diff --git a/tests/Language/GraphQL/ExecuteSpec.hs b/tests/Language/GraphQL/ExecuteSpec.hs
index 632e4dd..e7ab9f8 100644
--- a/tests/Language/GraphQL/ExecuteSpec.hs
+++ b/tests/Language/GraphQL/ExecuteSpec.hs
@@ -47,28 +47,26 @@ spec :: Spec
spec =
describe "execute" $ do
it "skips unknown fields" $
- let expected = Aeson.object
- [ "data" .= Aeson.object
- [ "philosopher" .= Aeson.object
- [ "firstName" .= ("Friedrich" :: String)
- ]
+ let data'' = Aeson.object
+ [ "philosopher" .= Aeson.object
+ [ "firstName" .= ("Friedrich" :: String)
]
]
- execute' = execute schema (mempty :: HashMap Name Aeson.Value)
+ expected = Response data'' mempty
+ execute' = execute schema Nothing (mempty :: HashMap Name Aeson.Value)
actual = runIdentity
$ either parseError execute'
$ parse document "" "{ philosopher { firstName surname } }"
in actual `shouldBe` expected
it "merges selections" $
- let expected = Aeson.object
- [ "data" .= Aeson.object
- [ "philosopher" .= Aeson.object
- [ "firstName" .= ("Friedrich" :: String)
- , "lastName" .= ("Nietzsche" :: String)
- ]
+ let data'' = Aeson.object
+ [ "philosopher" .= Aeson.object
+ [ "firstName" .= ("Friedrich" :: String)
+ , "lastName" .= ("Nietzsche" :: String)
]
]
- execute' = execute schema (mempty :: HashMap Name Aeson.Value)
+ expected = Response data'' mempty
+ execute' = execute schema Nothing (mempty :: HashMap Name Aeson.Value)
actual = runIdentity
$ either parseError execute'
$ parse document "" "{ philosopher { firstName } philosopher { lastName } }"
diff --git a/tests/Test/StarWars/QuerySpec.hs b/tests/Test/StarWars/QuerySpec.hs
index cf451f8..4e48dbf 100644
--- a/tests/Test/StarWars/QuerySpec.hs
+++ b/tests/Test/StarWars/QuerySpec.hs
@@ -361,4 +361,4 @@ testQuery q expected = runIdentity (graphql schema q) `shouldBe` expected
testQueryParams :: Aeson.Object -> Text -> Aeson.Value -> Expectation
testQueryParams f q expected =
- runIdentity (graphqlSubs schema f q) `shouldBe` expected
+ runIdentity (graphqlSubs schema Nothing f q) `shouldBe` expected