@@ -26,12 +26,10 @@ module Servant.ClientSpec where
26import Control.Applicative ((<$>))
26import Control.Applicative ((<$>))
28import Control.Arrow (left)
28import Control.Arrow (left)
29−import Control.Concurrent (forkIO, killThread, newEmptyMVar,
29+import Control.Concurrent (forkIO, killThread, ThreadId)
31−import Control.Exception (bracket, finally)
30+import Control.Exception (bracket)
32import Control.Monad.Trans.Except (ExceptT, runExceptT, throwE)
31import Control.Monad.Trans.Except (ExceptT, runExceptT, throwE)
33import Data.Aeson
32import Data.Aeson
35import Data.Char (chr, isPrint)
33import Data.Char (chr, isPrint)
36import Data.Foldable (forM_)
34import Data.Foldable (forM_)
37import Data.Monoid hiding (getLast)
35import Data.Monoid hiding (getLast)
@@ -41,9 +39,8 @@ import GHC.Generics (Generic)
41import GHC.TypeLits
39import GHC.TypeLits
42import qualified Network.HTTP.Client as C
40import qualified Network.HTTP.Client as C
43import Network.HTTP.Media
41import Network.HTTP.Media
44−import Network.HTTP.Types (Method, Status (..), badRequest400,
42+import Network.HTTP.Types (Status (..), badRequest400,
45− methodGet, ok200)
43+ methodGet, ok200, status400)
46−import qualified Network.HTTP.Types as HTTP
47import Network.Socket
44import Network.Socket
48import Network.Wai (Application, responseLBS)
45import Network.Wai (Application, responseLBS)
49import Network.Wai.Handler.Warp
46import Network.Wai.Handler.Warp
@@ -194,7 +191,8 @@ sucessSpec = beforeAll (startWaiApp server) $ afterAll endWaiApp $ do
194 let getQueryFlag = getNth (Proxy :: Proxy 6) $ client api baseUrl manager
191 let getQueryFlag = getNth (Proxy :: Proxy 6) $ client api baseUrl manager
195 (left show <$> runExceptT (getQueryFlag flag)) `shouldReturn` Right flag
192 (left show <$> runExceptT (getQueryFlag flag)) `shouldReturn` Right flag
197− it "Servant.API.Raw on success" $ do
194+ it "Servant.API.Raw on success" $ \(_, baseUrl) -> do
195+ let getRawSuccess = getNth (Proxy :: Proxy 7) $ client api baseUrl manager
198 res <- runExceptT (getRawSuccess methodGet)
196 res <- runExceptT (getRawSuccess methodGet)
199 case res of
197 case res of
200 Left e -> assertFailure $ show e
198 Left e -> assertFailure $ show e
@@ -204,7 +202,7 @@ sucessSpec = beforeAll (startWaiApp server) $ afterAll endWaiApp $ do
204 C.responseStatus response `shouldBe` ok200
202 C.responseStatus response `shouldBe` ok200
206 it "Servant.API.Raw should return a Left in case of failure" $ \(_, baseUrl) -> do
204 it "Servant.API.Raw should return a Left in case of failure" $ \(_, baseUrl) -> do
207− let getRawFailure = getNth (Proxy :: Proxy 11) $ client api baseUrl manager
205+ let getRawFailure = getNth (Proxy :: Proxy 8) $ client api baseUrl manager
208 res <- runExceptT (getRawFailure methodGet)
206 res <- runExceptT (getRawFailure methodGet)
209 case res of
207 case res of
210 Right _ -> assertFailure "expected Left, but got Right"
208 Right _ -> assertFailure "expected Left, but got Right"
@@ -213,7 +211,7 @@ sucessSpec = beforeAll (startWaiApp server) $ afterAll endWaiApp $ do
213 Servant.Client.responseBody e `shouldBe` "rawFailure"
211 Servant.Client.responseBody e `shouldBe` "rawFailure"
215 it "Returns headers appropriately" $ \(_, baseUrl) -> do
213 it "Returns headers appropriately" $ \(_, baseUrl) -> do
216− let getRespHeaders = getNth (Proxy :: Proxy 13) $ client api baseUrl manager
214+ let getRespHeaders = getNth (Proxy :: Proxy 10) $ client api baseUrl manager
217 res <- runExceptT getRespHeaders
215 res <- runExceptT getRespHeaders
218 case res of
216 case res of
219 Left e -> assertFailure $ show e
217 Left e -> assertFailure $ show e
@@ -221,7 +219,7 @@ sucessSpec = beforeAll (startWaiApp server) $ afterAll endWaiApp $ do
222 modifyMaxSuccess (const 20) $ do
220 modifyMaxSuccess (const 20) $ do
223 it "works for a combination of Capture, QueryParam, QueryFlag and ReqBody" $ \(_, baseUrl) ->
221 it "works for a combination of Capture, QueryParam, QueryFlag and ReqBody" $ \(_, baseUrl) ->
224− let getMultiple = getNth (Proxy :: Proxy 12) $ client api baseUrl manager
222+ let getMultiple = getNth (Proxy :: Proxy 9) $ client api baseUrl manager
225 in property $ forAllShrink pathGen shrink $ \(NonEmpty cap) num flag body ->
223 in property $ forAllShrink pathGen shrink $ \(NonEmpty cap) num flag body ->
226 ioProperty $ do
224 ioProperty $ do
227 result <- left show <$> runExceptT (getMultiple cap num flag body)
225 result <- left show <$> runExceptT (getMultiple cap num flag body)