git.iko.soy/typeable/servant
on master help sign in
Fix Request's Show instance (#1492)
commitcb294aa2b35ae4db668f31bc63a794e2cf08605a authorantoine-fl <antoine.vandecreme@fretlink.com> dateWed 1 Dec 2021, 19:16 (5 years ago) parenta975cfc
2 files changed+14−1
servant-client-core/src/Servant/Client/Core/Request.hs+2−1 servant-client-core/test/Servant/Client/Core/RequestSpec.hs+12
servant-client-core/src/Servant/Client/Core/Request.hs+2−1
@@ -78,12 +78,13 @@ instance (Show a, Show b) =>
7878 . showString ", requestAccept = "
7979 . showsPrec 0 (requestAccept req)
8080 . showString ", requestHeaders = "
81− . showsPrec 0 (redactSensitiveHeader <$> requestHeaders req))
81+ . showsPrec 0 (redactSensitiveHeader <$> requestHeaders req)
8282 . showString ", requestHttpVersion = "
8383 . showsPrec 0 (requestHttpVersion req)
8484 . showString ", requestMethod = "
8585 . showsPrec 0 (requestMethod req)
8686 . showString "}"
87+ )
8788 where
8889 redactSensitiveHeader :: Header -> Header
8990 redactSensitiveHeader ("Authorization", _) = ("Authorization", "<REDACTED>")
servant-client-core/test/Servant/Client/Core/RequestSpec.hs+12
@@ -10,10 +10,22 @@ import Data.List (isInfixOf)
1010import Servant.Client.Core.Request
1111import Test.Hspec
1212
13+newtype DataWithRequest = DataWithRequest (RequestF RequestBody ())
14+ deriving Show
15+
1316spec :: Spec
1417spec = do
1518 describe "Request" $ do
1619 describe "show" $ do
20+ it "has parenthesis correctly positioned" $ do
21+ let d = DataWithRequest (void defaultRequest)
22+ show d `shouldBe` "DataWithRequest (Request {requestPath = ()\
23+ \, requestQueryString = fromList []\
24+ \, requestBody = Nothing\
25+ \, requestAccept = fromList []\
26+ \, requestHeaders = fromList []\
27+ \, requestHttpVersion = HTTP/1.1\
28+ \, requestMethod = \"GET\"})"
1729 it "redacts the authorization header" $ do
1830 let request = void $ defaultRequest { requestHeaders = pure ("authorization", "secret") }
1931 isInfixOf "secret" (show request) `shouldBe` False