servant-client 0.18.2 → 0.18.3
raw patch · 4 files changed
+35/−9 lines, 4 filesdep ~QuickCheckdep ~basedep ~bytestringPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: QuickCheck, base, bytestring, http-client, servant-client-core
API changes (from Hackage documentation)
Files
- CHANGELOG.md +12/−0
- servant-client.cabal +9/−9
- test/Servant/ClientTestUtils.hs +5/−0
- test/Servant/SuccessSpec.hs +9/−0
CHANGELOG.md view
@@ -1,6 +1,18 @@ [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md) [Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md) +0.18.3+------++### Significant changes++- Add response header support to UVerb (#1420)++### Other changes++- Support GHC-9.0.1.+- Bump `bytestring`, `hspec`, `http-client` and `QuickCheck` dependencies.+ 0.18.2 ------
servant-client.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name: servant-client-version: 0.18.2+version: 0.18.3 synopsis: Automatic derivation of querying functions for servant category: Servant, Web@@ -20,7 +20,7 @@ maintainer: haskell-servant-maintainers@googlegroups.com copyright: 2014-2016 Zalora South East Asia Pte Ltd, 2016-2019 Servant Contributors build-type: Simple-tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.2+tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.2 || ==9.0.1 extra-source-files: CHANGELOG.md@@ -40,8 +40,8 @@ -- Bundled with GHC: Lower bound to not force re-installs -- text and mtl are bundled starting with GHC-8.4 build-depends:- base >= 4.9 && < 4.15- , bytestring >= 0.10.8.1 && < 0.11+ base >= 4.9 && < 4.16+ , bytestring >= 0.10.8.1 && < 0.12 , containers >= 0.5.7.1 && < 0.7 , deepseq >= 1.4.2.0 && < 1.5 , mtl >= 2.2.2 && < 2.3@@ -58,13 +58,13 @@ -- Strict dependency on `servant-client-core` as we re-export things. build-depends: servant == 0.18.*- , servant-client-core >= 0.18.2 && <0.18.3+ , servant-client-core >= 0.18.3 && <0.18.4 -- Other dependencies: Lower bound around what is in the latest Stackage LTS. -- Here can be exceptions if we really need features from the newer versions. build-depends: base-compat >= 0.10.5 && < 0.12- , http-client >= 0.5.13.1 && < 0.7+ , http-client >= 0.5.13.1 && < 0.8 , http-media >= 0.7.1.3 && < 0.9 , http-types >= 0.12.2 && < 0.13 , exceptions >= 0.10.0 && < 0.11@@ -119,16 +119,16 @@ -- Additional dependencies build-depends: entropy >= 0.4.1.3 && < 0.5- , hspec >= 2.6.0 && < 2.8+ , hspec >= 2.6.0 && < 2.9 , HUnit >= 1.6.0.0 && < 1.7 , network >= 2.8.0.0 && < 3.2- , QuickCheck >= 2.12.6.1 && < 2.14+ , QuickCheck >= 2.12.6.1 && < 2.15 , servant == 0.18.* , servant-server == 0.18.* , tdigest >= 0.2 && < 0.3 build-tool-depends:- hspec-discover:hspec-discover >= 2.6.0 && < 2.8+ hspec-discover:hspec-discover >= 2.6.0 && < 2.9 test-suite readme type: exitcode-stdio-1.0
test/Servant/ClientTestUtils.hs view
@@ -32,6 +32,7 @@ (chr, isPrint) import Data.Monoid () import Data.Proxy+import Data.SOP import Data.Text (Text) import qualified Data.Text as Text@@ -121,6 +122,7 @@ ReqBody '[JSON] [(String, [Rational])] :> Get '[JSON] (String, Maybe Int, Bool, [(String, [Rational])]) :<|> "headers" :> Get '[JSON] (Headers TestHeaders Bool)+ :<|> "uverb-headers" :> UVerb 'GET '[JSON] '[ WithStatus 200 (Headers TestHeaders Bool), WithStatus 204 String ] :<|> "deleteContentType" :> DeleteNoContent :<|> "redirectWithCookie" :> Raw :<|> "empty" :> EmptyAPI@@ -150,6 +152,7 @@ getMultiple :: String -> Maybe Int -> Bool -> [(String, [Rational])] -> ClientM (String, Maybe Int, Bool, [(String, [Rational])]) getRespHeaders :: ClientM (Headers TestHeaders Bool)+getUVerbRespHeaders :: ClientM (Union '[ WithStatus 200 (Headers TestHeaders Bool), WithStatus 204 String ]) getDeleteContentType :: ClientM NoContent getRedirectWithCookie :: HTTP.Method -> ClientM Response uverbGetSuccessOrRedirect :: Bool@@ -172,6 +175,7 @@ :<|> getRawFailure :<|> getMultiple :<|> getRespHeaders+ :<|> getUVerbRespHeaders :<|> getDeleteContentType :<|> getRedirectWithCookie :<|> EmptyClient@@ -198,6 +202,7 @@ :<|> (Tagged $ \ _request respond -> respond $ Wai.responseLBS HTTP.badRequest400 [] "rawFailure") :<|> (\ a b c d -> return (a, b, c, d)) :<|> (return $ addHeader 1729 $ addHeader "eg2" True)+ :<|> (pure . Z . I . WithStatus $ addHeader 1729 $ addHeader "eg2" True) :<|> return NoContent :<|> (Tagged $ \ _request respond -> respond $ Wai.responseLBS HTTP.found302 [("Location", "testlocation"), ("Set-Cookie", "testcookie=test")] "") :<|> emptyServer
test/Servant/SuccessSpec.hs view
@@ -32,6 +32,7 @@ import Data.Maybe (listToMaybe) import Data.Monoid ()+import Data.SOP (NS (..), I (..)) import Data.Text (Text) import qualified Network.HTTP.Client as C@@ -128,6 +129,14 @@ case res of Left e -> assertFailure $ show e Right val -> getHeaders val `shouldBe` [("X-Example1", "1729"), ("X-Example2", "eg2")]++ it "Returns headers on UVerb requests" $ \(_, baseUrl) -> do+ res <- runClient getUVerbRespHeaders baseUrl+ case res of+ Left e -> assertFailure $ show e+ Right (Z (I (WithStatus val))) ->+ getHeaders val `shouldBe` [("X-Example1", "1729"), ("X-Example2", "eg2")]+ Right (S _) -> assertFailure "expected first alternative of union" it "Stores Cookie in CookieJar after a redirect" $ \(_, baseUrl) -> do mgr <- C.newManager C.defaultManagerSettings