git.iko.soy/typeable/servant
on master help sign in
Demonstrate that a client for EmptyAPI pattern-matches EmptyAPIClient
e60bdadDavid Turner
servant-client/test/Servant/ClientSpec.hs+6−1
@@ -111,6 +111,8 @@ type Api =
111 Get '[JSON] (String, Maybe Int, Bool, [(String, [Rational])])
111 Get '[JSON] (String, Maybe Int, Bool, [(String, [Rational])])
112 :<|> "headers" :> Get '[JSON] (Headers TestHeaders Bool)
112 :<|> "headers" :> Get '[JSON] (Headers TestHeaders Bool)
113 :<|> "deleteContentType" :> DeleteNoContent '[JSON] NoContent
113 :<|> "deleteContentType" :> DeleteNoContent '[JSON] NoContent
114+ :<|> "empty" :> EmptyAPI
115+
114api :: Proxy Api
116api :: Proxy Api
115api = Proxy
117api = Proxy
116
118
@@ -130,6 +132,7 @@ getMultiple :: String -> Maybe Int -> Bool -> [(String, [Rational])]
130 -> SCR.ClientM (String, Maybe Int, Bool, [(String, [Rational])])
132 -> SCR.ClientM (String, Maybe Int, Bool, [(String, [Rational])])
131getRespHeaders :: SCR.ClientM (Headers TestHeaders Bool)
133getRespHeaders :: SCR.ClientM (Headers TestHeaders Bool)
132getDeleteContentType :: SCR.ClientM NoContent
134getDeleteContentType :: SCR.ClientM NoContent
135+
133getGet
136getGet
134 :<|> getDeleteEmpty
137 :<|> getDeleteEmpty
135 :<|> getCapture
138 :<|> getCapture
@@ -142,7 +145,8 @@ getGet
142 :<|> getRawFailure
145 :<|> getRawFailure
143 :<|> getMultiple
146 :<|> getMultiple
144 :<|> getRespHeaders
147 :<|> getRespHeaders
145− :<|> getDeleteContentType = client api
148+ :<|> getDeleteContentType
149+ :<|> EmptyAPIClient = client api
146
150
147server :: Application
151server :: Application
148server = serve api (
152server = serve api (
@@ -162,6 +166,7 @@ server = serve api (
162 :<|> (\ a b c d -> return (a, b, c, d))
166 :<|> (\ a b c d -> return (a, b, c, d))
163 :<|> (return $ addHeader 1729 $ addHeader "eg2" True)
167 :<|> (return $ addHeader 1729 $ addHeader "eg2" True)
164 :<|> return NoContent
168 :<|> return NoContent
169+ :<|> emptyAPIServer
165 )
170 )
166
171
167
172