Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
3.0 kB · 75 lines
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576diff --git a/servant-client-core.cabal b/servant-client-core.cabalindex 5789da601..3faf65bb4 100644--- a/servant-client-core.cabal+++ b/servant-client-core.cabal@@ -96,6 +96,7 @@ test-suite spec main-is: Spec.hs other-modules: Servant.Client.Core.Internal.BaseUrlSpec+ Servant.Client.Core.RequestSpec -- Dependencies inherited from the library. No need to specify bounds. build-depends:diff --git a/src/Servant/Client/Core/Request.hs b/src/Servant/Client/Core/Request.hsindex 73756e702..0276d46f8 100644--- a/src/Servant/Client/Core/Request.hs+++ b/src/Servant/Client/Core/Request.hs@@ -64,8 +64,32 @@ data RequestF body path = Request , requestHeaders :: Seq.Seq Header , requestHttpVersion :: HttpVersion , requestMethod :: Method- } deriving (Generic, Typeable, Eq, Show, Functor, Foldable, Traversable)+ } deriving (Generic, Typeable, Eq, Functor, Foldable, Traversable) +instance (Show a, Show b) =>+ Show (Servant.Client.Core.Request.RequestF a b) where+ showsPrec p req+ = showParen+ (p >= 11)+ ( showString "Request {requestPath = "+ . showsPrec 0 (requestPath req)+ . showString ", requestQueryString = "+ . showsPrec 0 (requestQueryString req)+ . showString ", requestBody = "+ . showsPrec 0 (requestBody req)+ . showString ", requestAccept = "+ . showsPrec 0 (requestAccept req)+ . showString ", requestHeaders = "+ . showsPrec 0 (redactSensitiveHeader <$> requestHeaders req))+ . showString ", requestHttpVersion = "+ . showsPrec 0 (requestHttpVersion req)+ . showString ", requestMethod = "+ . showsPrec 0 (requestMethod req)+ . showString "}"+ where+ redactSensitiveHeader :: Header -> Header+ redactSensitiveHeader ("Authorization", _) = ("Authorization", "<REDACTED>")+ redactSensitiveHeader h = h instance Bifunctor RequestF where bimap = bimapDefault instance Bifoldable RequestF where bifoldMap = bifoldMapDefault instance Bitraversable RequestF wherediff --git a/test/Servant/Client/Core/RequestSpec.hs b/test/Servant/Client/Core/RequestSpec.hsnew file mode 100644index 000000000..99a1db7d3--- /dev/null+++ b/test/Servant/Client/Core/RequestSpec.hs@@ -0,0 +1,19 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# LANGUAGE OverloadedStrings #-}+module Servant.Client.Core.RequestSpec (spec) where+++import Prelude ()+import Prelude.Compat+import Control.Monad+import Data.List (isInfixOf)+import Servant.Client.Core.Request+import Test.Hspec++spec :: Spec+spec = do+ describe "Request" $ do+ describe "show" $ do+ it "redacts the authorization header" $ do+ let request = void $ defaultRequest { requestHeaders = pure ("authorization", "secret") }+ isInfixOf "secret" (show request) `shouldBe` False