@@ -17,6 +17,7 @@ import GraphQL.API
17
17
( Object
18
18
, Field
19
19
, Argument
20
+ , Enum
20
21
, (:>)
21
22
)
22
23
import GraphQL.Resolver
@@ -26,6 +27,8 @@ import GraphQL.Resolver
26
27
)
27
28
import GraphQL.Internal.Output (singleError )
28
29
30
+ import EnumTests ( Mode (NormalFile ) )
31
+
29
32
-- Test a custom error monad
30
33
type TMonad = ExceptT Text IO
31
34
type T = Object " T" '[] '[ Field " z" Int32
@@ -63,6 +66,13 @@ handler = pure $ \fooId -> do
63
66
-- have to wrap the result in a pure.
64
67
sequence $ fmap (pure . viewFoo) foo
65
68
69
+ -- Enum test
70
+ type EnumQuery = Object " File" '[]
71
+ '[ Field " mode" (Enum " modeEnumName" Mode ) ]
72
+
73
+ enumHandler :: Handler IO EnumQuery
74
+ enumHandler = pure $ pure NormalFile
75
+ -- /Enum test
66
76
67
77
tests :: IO TestTree
68
78
tests = testSpec " TypeAPI" $ do
@@ -80,3 +90,7 @@ tests = testSpec "TypeAPI" $ do
80
90
it " Just works" $ do
81
91
Success object <- interpretAnonymousQuery @ Query handler " { test(id: \" 10\" ) { name } }"
82
92
encode object `shouldBe` " {\" test\" :{\" name\" :\" Mort\" }}"
93
+ describe " Parse, validate and execute queries against API" $ do
94
+ it " API.Enum works" $ do
95
+ Success object <- interpretAnonymousQuery @ EnumQuery enumHandler " { mode }"
96
+ encode object `shouldBe` " {\" mode\" :\" NormalFile\" }"
0 commit comments