summaryrefslogtreecommitdiff
path: root/tests/Language
diff options
context:
space:
mode:
authorDmitrii Skurikhin <dmitrii.sk@gmail.com>2022-01-04 14:40:41 +0300
committerEugen Wissner <belka@caraus.de>2022-01-07 08:31:47 +0100
commit1f7bd92d1105f44d5214c1210d4cefeb8bc1bd8e (patch)
tree665720c2fe6c66e06bdc81c3a5edbe125d1d200b /tests/Language
parent16cbe3fc28d097965c82fdcefc086205d565e3d0 (diff)
downloadgraphql-1f7bd92d1105f44d5214c1210d4cefeb8bc1bd8e.tar.gz
fix index position in error path
Diffstat (limited to 'tests/Language')
-rw-r--r--tests/Language/GraphQL/ExecuteSpec.hs16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/Language/GraphQL/ExecuteSpec.hs b/tests/Language/GraphQL/ExecuteSpec.hs
index 5eafb2e..f4e599a 100644
--- a/tests/Language/GraphQL/ExecuteSpec.hs
+++ b/tests/Language/GraphQL/ExecuteSpec.hs
@@ -4,6 +4,7 @@
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
+
module Language.GraphQL.ExecuteSpec
( spec
) where
@@ -26,6 +27,9 @@ import qualified Language.GraphQL.Type.Out as Out
import Prelude hiding (id)
import Test.Hspec (Spec, context, describe, it, shouldBe)
import Text.Megaparsec (parse)
+import Schemas.HeroSchema (heroSchema)
+import Data.Maybe (fromJust)
+import qualified Data.Sequence as Seq
data PhilosopherException = PhilosopherException
deriving Show
@@ -335,6 +339,18 @@ spec =
$ parse document "" "{ philosopher(id: \"1\") { firstLanguage } }"
in actual `shouldBe` expected
+ context "Error path" $ do
+ let executeHero :: Document -> Either SomeException EitherStreamOrValue
+ executeHero = execute heroSchema Nothing (HashMap.empty :: HashMap Name Value)
+
+ it "at the beggining of the list" $
+ let Right (Right actual) = either (pure . parseError) executeHero
+ $ parse document "" "{ hero(id: \"1\") { friends { name } } }"
+ Response _ errors' = actual
+ Error _ _ path' = fromJust $ Seq.lookup 0 errors'
+ expected = [Segment "hero", Segment "friends", Index 0, Segment "name"]
+ in path' `shouldBe` expected
+
context "Subscription" $
it "subscribes" $
let data'' = Object