summaryrefslogtreecommitdiff
path: root/tests/Test/FragmentSpec.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2020-09-04 19:12:19 +0200
committerEugen Wissner <belka@caraus.de>2020-09-04 19:12:19 +0200
commit14ed2098285776690bd8fea4209560bf3dba9e74 (patch)
treea325eb2aeb0cedd9f8988cc3bfd257091939068c /tests/Test/FragmentSpec.hs
parent33318a3b01d27771c6d51ddc5899162bf3acebd8 (diff)
downloadgraphql-14ed2098285776690bd8fea4209560bf3dba9e74.tar.gz
Collect types from the subscription root
Diffstat (limited to 'tests/Test/FragmentSpec.hs')
-rw-r--r--tests/Test/FragmentSpec.hs25
1 files changed, 10 insertions, 15 deletions
diff --git a/tests/Test/FragmentSpec.hs b/tests/Test/FragmentSpec.hs
index 089b721..216ae21 100644
--- a/tests/Test/FragmentSpec.hs
+++ b/tests/Test/FragmentSpec.hs
@@ -46,18 +46,15 @@ inlineQuery = [r|{
}|]
shirtType :: Out.ObjectType IO
-shirtType = Out.ObjectType "Shirt" Nothing []
- $ HashMap.fromList
- [ ("size", sizeFieldType)
- , ("circumference", circumferenceFieldType)
- ]
+shirtType = Out.ObjectType "Shirt" Nothing [] $ HashMap.fromList
+ [ ("size", sizeFieldType)
+ ]
hatType :: Out.ObjectType IO
-hatType = Out.ObjectType "Hat" Nothing []
- $ HashMap.fromList
- [ ("size", sizeFieldType)
- , ("circumference", circumferenceFieldType)
- ]
+hatType = Out.ObjectType "Hat" Nothing [] $ HashMap.fromList
+ [ ("size", sizeFieldType)
+ , ("circumference", circumferenceFieldType)
+ ]
circumferenceFieldType :: Out.Resolver IO
circumferenceFieldType
@@ -73,9 +70,9 @@ toSchema :: Text -> (Text, Value) -> Schema IO
toSchema t (_, resolve) = Schema
{ query = queryType, mutation = Nothing, subscription = Nothing }
where
- unionMember = if t == "Hat" then hatType else shirtType
+ garmentType = Out.UnionType "Garment" Nothing [hatType, shirtType]
typeNameField = Out.Field Nothing (Out.NamedScalarType string) mempty
- garmentField = Out.Field Nothing (Out.NamedObjectType unionMember) mempty
+ garmentField = Out.Field Nothing (Out.NamedUnionType garmentType) mempty
queryType =
case t of
"circumference" -> hatType
@@ -118,9 +115,7 @@ spec = do
}
}
}|]
- resolvers = ("garment", Object $ HashMap.fromList [circumference, size])
-
- actual <- graphql (toSchema "garment" resolvers) sourceQuery
+ actual <- graphql (toSchema "garment" $ garment "Hat") sourceQuery
let expected = HashMap.singleton "data"
$ Aeson.object
[ "garment" .= Aeson.object