From c7d5b02911380583ea8ca4bfc600f533658ab16f Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 19 Oct 2019 10:00:25 +0200 Subject: Handle top-level fragments Fixes #17. --- tests/Test/FragmentSpec.hs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'tests/Test') diff --git a/tests/Test/FragmentSpec.hs b/tests/Test/FragmentSpec.hs index 337db7e..7b2bb92 100644 --- a/tests/Test/FragmentSpec.hs +++ b/tests/Test/FragmentSpec.hs @@ -4,12 +4,13 @@ module Test.FragmentSpec ( spec ) where -import Data.Aeson (object, (.=)) +import Data.Aeson (Value(..), object, (.=)) +import qualified Data.HashMap.Strict as HashMap import Data.List.NonEmpty (NonEmpty(..)) import Data.Text (Text) import Language.GraphQL import qualified Language.GraphQL.Schema as Schema -import Test.Hspec (Spec, describe, it, shouldBe) +import Test.Hspec (Spec, describe, it, shouldBe, shouldNotSatisfy) import Text.RawString.QQ (r) size :: Schema.Resolver IO @@ -81,3 +82,16 @@ spec = describe "Inline fragment executor" $ do ] ] in actual `shouldBe` expected + + it "evaluates fragments on Query" $ do + let query = [r|{ + ... { + size + } + }|] + + actual <- graphql (size :| []) query + actual `shouldNotSatisfy` hasErrors + where + hasErrors (Object object') = HashMap.member "errors" object' + hasErrors _ = True -- cgit v1.2.3