@@ -8,28 +8,28 @@
88module Servant.ServerSpec where
99
1010
11−import Control.Monad.Trans.Either
12−import Data.Aeson
13−import Data.Char
14−import Data.Proxy
15−import Data.String
16−import Data.String.Conversions
17−import GHC.Generics
18−import Network.HTTP.Types
19−import Network.Wai
20−import Network.Wai.Test
21−import Test.Hspec
22−import Test.Hspec.Wai
23−
24−import Servant.API.Capture
25−import Servant.API.Get
26−import Servant.API.ReqBody
27−import Servant.API.Post
28−import Servant.API.QueryParam
29−import Servant.API.Raw
30−import Servant.API.Sub
31−import Servant.API.Alternative
32−import Servant.Server
11+import Control.Monad.Trans.Either (EitherT, left)
12+import Data.Aeson (ToJSON, FromJSON, encode, decode')
13+import Data.Char (toUpper)
14+import Data.Proxy (Proxy(Proxy))
15+import Data.String (fromString)
16+import Data.String.Conversions (cs)
17+import GHC.Generics (Generic)
18+import Network.HTTP.Types (parseQuery, ok200)
19+import Network.Wai (Application, Request, responseLBS, pathInfo, queryString, rawQueryString)
20+import Network.Wai.Test (runSession, request, defaultRequest, simpleBody)
21+import Test.Hspec (Spec, describe, it, shouldBe)
22+import Test.Hspec.Wai (liftIO, with, get, post, shouldRespondWith, matchStatus)
23+
24+import Servant.API.Capture (Capture)
25+import Servant.API.Get (Get)
26+import Servant.API.ReqBody (ReqBody)
27+import Servant.API.Post (Post)
28+import Servant.API.QueryParam (QueryParam, QueryParams, QueryFlag)
29+import Servant.API.Raw (Raw)
30+import Servant.API.Sub ((:>))
31+import Servant.API.Alternative ((:<|>)((:<|>)))
32+import Servant.Server (Server, serve)
3333
3434
3535-- * test data types
@@ -94,8 +94,8 @@ captureSpec = do
9494
9595 with (return (serve
9696 (Proxy :: Proxy (Capture "captured" String :> Raw))
97− (\ "captured" request respond ->
98− respond $ responseLBS ok200 [] (cs $ show $ pathInfo request)))) $ do
97+ (\ "captured" request_ respond ->
98+ respond $ responseLBS ok200 [] (cs $ show $ pathInfo request_)))) $ do
9999 it "strips the captured path snippet from pathInfo" $ do
100100 get "/captured/foo" `shouldRespondWith` (fromString (show ["foo" :: String]))
101101
@@ -134,7 +134,7 @@ qpServer = queryParamServer :<|> qpNames :<|> qpCapitalize
134134 qpCapitalize False = return alice
135135 qpCapitalize True = return alice { name = map toUpper (name alice) }
136136
137− queryParamServer (Just name) = return alice{name = name}
137+ queryParamServer (Just name_) = return alice{name = name_}
138138 queryParamServer Nothing = return alice
139139
140140queryParamSpec :: Spec
@@ -222,7 +222,7 @@ type RawApi = "foo" :> Raw
222222rawApi :: Proxy RawApi
223223rawApi = Proxy
224224rawApplication :: Show a => (Request -> a) -> Application
225−rawApplication f request respond = respond $ responseLBS ok200 [] (cs $ show $ f request)
225+rawApplication f request_ respond = respond $ responseLBS ok200 [] (cs $ show $ f request_)
226226
227227rawSpec :: Spec
228228rawSpec = do
@@ -264,7 +264,7 @@ unionSpec = do
264264 liftIO $ do
265265 decode' (simpleBody response) `shouldBe`
266266 Just alice
267− response <- get "/bar"
267+ response_ <- get "/bar"
268268 liftIO $ do
269− decode' (simpleBody response) `shouldBe`
269+ decode' (simpleBody response_) `shouldBe`
270270 Just jerry