From a6f9cec413c35abdcb0d04a5550334dd2fa7d472 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 5 Jul 2020 14:36:00 +0200 Subject: Handle errors using custom types Fixes #32. --- tests/Language/GraphQL/ErrorSpec.hs | 10 +++------- tests/Language/GraphQL/ExecuteSpec.hs | 24 +++++++++++------------- 2 files changed, 14 insertions(+), 20 deletions(-) (limited to 'tests/Language/GraphQL') 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 } }" -- cgit v1.2.3