From c3ecfece0358d79dd1da6efbe6ab83e63bf50f88 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 21 May 2020 10:20:59 +0200 Subject: Coerce variable values --- tests/Test/FragmentSpec.hs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'tests/Test/FragmentSpec.hs') diff --git a/tests/Test/FragmentSpec.hs b/tests/Test/FragmentSpec.hs index 879a9b7..671def5 100644 --- a/tests/Test/FragmentSpec.hs +++ b/tests/Test/FragmentSpec.hs @@ -6,7 +6,6 @@ module Test.FragmentSpec 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 @@ -50,12 +49,28 @@ hasErrors :: Value -> Bool hasErrors (Object object') = HashMap.member "errors" object' hasErrors _ = True +shirtType :: ObjectType IO +shirtType = ObjectType "Shirt" + $ HashMap.singleton resolverName + $ Field Nothing (ScalarOutputType string) mempty resolve + where + (Schema.Resolver resolverName resolve) = size + +hatType :: ObjectType IO +hatType = ObjectType "Hat" + $ HashMap.singleton resolverName + $ Field Nothing (ScalarOutputType int) mempty resolve + where + (Schema.Resolver resolverName resolve) = circumference + toSchema :: Schema.Resolver IO -> Schema IO -toSchema resolver = Schema { query = queryType, mutation = Nothing } +toSchema (Schema.Resolver resolverName resolve) = Schema + { query = queryType, mutation = Nothing } where + unionMember = if resolverName == "Hat" then hatType else shirtType queryType = ObjectType "Query" - $ Schema.resolversToMap - $ resolver :| [] + $ HashMap.singleton resolverName + $ Field Nothing (ObjectOutputType unionMember) mempty resolve spec :: Spec spec = do -- cgit v1.2.3