From 1dd6b7b013dfe2092859ddc3850944a9925a45dd Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 9 Nov 2019 23:24:31 +0100 Subject: Support nested fragments ... without forward lookup. --- tests/Test/FragmentSpec.hs | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/Test/FragmentSpec.hs b/tests/Test/FragmentSpec.hs index 7b2bb92..6a49eb6 100644 --- a/tests/Test/FragmentSpec.hs +++ b/tests/Test/FragmentSpec.hs @@ -91,7 +91,29 @@ spec = describe "Inline fragment executor" $ do }|] actual <- graphql (size :| []) query - actual `shouldNotSatisfy` hasErrors - where - hasErrors (Object object') = HashMap.member "errors" object' - hasErrors _ = True + let hasErrors (Object object') = HashMap.member "errors" object' + hasErrors _ = True + in actual `shouldNotSatisfy` hasErrors + + it "evaluates nested fragments" $ do + let query = [r| + { + ...hatFragment + } + + fragment hatFragment on Hat { + ...circumferenceFragment + } + + fragment circumferenceFragment on Hat { + circumference + } + |] + + actual <- graphql (circumference :| []) query + let expected = object + [ "data" .= object + [ "circumference" .= (60 :: Int) + ] + ] + in actual `shouldBe` expected -- cgit v1.2.3