packages feed

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 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