diff options
| author | Eugen Wissner <belka@caraus.de> | 2020-05-21 10:20:59 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2020-05-21 10:20:59 +0200 |
| commit | c3ecfece0358d79dd1da6efbe6ab83e63bf50f88 (patch) | |
| tree | 1ff3de1ddd4bf2e04da57cd6d1c889520c263427 /tests/Test/FragmentSpec.hs | |
| parent | a5c44f30facdaabd94ed25953a3bd88005efa868 (diff) | |
| download | graphql-c3ecfece0358d79dd1da6efbe6ab83e63bf50f88.tar.gz | |
Coerce variable values
Diffstat (limited to 'tests/Test/FragmentSpec.hs')
| -rw-r--r-- | tests/Test/FragmentSpec.hs | 23 |
1 files changed, 19 insertions, 4 deletions
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 |
