From cb294aa2b35ae4db668f31bc63a794e2cf08605a Mon Sep 17 00:00:00 2001 From: antoine-fl Date: Wed, 1 Dec 2021 19:16:59 +0100 Subject: [PATCH] Fix Request's Show instance (#1492) --- .../src/Servant/Client/Core/Request.hs | 3 ++- .../test/Servant/Client/Core/RequestSpec.hs | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/servant-client-core/src/Servant/Client/Core/Request.hs b/servant-client-core/src/Servant/Client/Core/Request.hs index bdc3e382..2733f65c 100644 --- a/servant-client-core/src/Servant/Client/Core/Request.hs +++ b/servant-client-core/src/Servant/Client/Core/Request.hs @@ -78,12 +78,13 @@ instance (Show a, Show b) => . showString ", requestAccept = " . showsPrec 0 (requestAccept req) . showString ", requestHeaders = " - . showsPrec 0 (redactSensitiveHeader <$> requestHeaders req)) + . 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", "") diff --git a/servant-client-core/test/Servant/Client/Core/RequestSpec.hs b/servant-client-core/test/Servant/Client/Core/RequestSpec.hs index 99a1db7d..eed76467 100644 --- a/servant-client-core/test/Servant/Client/Core/RequestSpec.hs +++ b/servant-client-core/test/Servant/Client/Core/RequestSpec.hs @@ -10,10 +10,22 @@ import Data.List (isInfixOf) import Servant.Client.Core.Request import Test.Hspec +newtype DataWithRequest = DataWithRequest (RequestF RequestBody ()) + deriving Show + spec :: Spec spec = do describe "Request" $ do describe "show" $ do + it "has parenthesis correctly positioned" $ do + let d = DataWithRequest (void defaultRequest) + show d `shouldBe` "DataWithRequest (Request {requestPath = ()\ + \, requestQueryString = fromList []\ + \, requestBody = Nothing\ + \, requestAccept = fromList []\ + \, requestHeaders = fromList []\ + \, requestHttpVersion = HTTP/1.1\ + \, requestMethod = \"GET\"})" it "redacts the authorization header" $ do let request = void $ defaultRequest { requestHeaders = pure ("authorization", "secret") } isInfixOf "secret" (show request) `shouldBe` False