summaryrefslogtreecommitdiff
path: root/tests/Test/StarWars/Schema.hs
diff options
context:
space:
mode:
authorDanny Navarro <j@dannynavarro.net>2017-03-01 22:04:13 -0300
committerDanny Navarro <j@dannynavarro.net>2017-03-01 17:04:13 -0300
commit285ccb0af954059879b12e33754fd10ccbed646d (patch)
tree14fa3e0e93b915232347f4efe9cd7eac6869553c /tests/Test/StarWars/Schema.hs
parent6a10e28ba85d593184f6a1885bbab2347466ea0e (diff)
downloadgraphql-285ccb0af954059879b12e33754fd10ccbed646d.tar.gz
Implement type instrospection tests
The main intention with this commit is to show a poor's man way to support type instrospection.
Diffstat (limited to 'tests/Test/StarWars/Schema.hs')
-rw-r--r--tests/Test/StarWars/Schema.hs6
1 files changed, 5 insertions, 1 deletions
diff --git a/tests/Test/StarWars/Schema.hs b/tests/Test/StarWars/Schema.hs
index e816d63..4d2fbf9 100644
--- a/tests/Test/StarWars/Schema.hs
+++ b/tests/Test/StarWars/Schema.hs
@@ -19,7 +19,10 @@ schema = hero :| [human, droid]
hero :: Alternative f => Resolver f
hero = Schema.objectA "hero" $ \case
[] -> character artoo
- [Argument "episode" (ValueInt n)] -> character . getHero $ fromIntegral n
+ [Argument "episode" (ValueInt n)] -> character . getHero $ fromIntegral n
+ [Argument "episode" (ValueEnum "NEWHOPE")] -> character $ getHero 4
+ [Argument "episode" (ValueEnum "EMPIRE" )] -> character $ getHero 5
+ [Argument "episode" (ValueEnum "JEDI" )] -> character $ getHero 6
_ -> empty
human :: Alternative f => Resolver f
@@ -40,4 +43,5 @@ character char =
, Schema.enum "appearsIn" . traverse getEpisode $ appearsIn char
, Schema.scalar "secretBackstory" $ secretBackstory char
, Schema.scalar "homePlanet" $ either mempty homePlanet char
+ , Schema.scalar "__typename" $ typeName char
]