git.iko.soy/typeable/servant
on master help sign in
Fix Request's Show instance (#1492)
cb294aaantoine-fl
servant-client-core/src/Servant/Client/Core/Request.hs+2−1
@@ -78,12 +78,13 @@ instance (Show a, Show b) =>
78 . showString ", requestAccept = "
78 . showString ", requestAccept = "
79 . showsPrec 0 (requestAccept req)
79 . showsPrec 0 (requestAccept req)
80 . showString ", requestHeaders = "
80 . showString ", requestHeaders = "
81− . showsPrec 0 (redactSensitiveHeader <$> requestHeaders req))
81+ . showsPrec 0 (redactSensitiveHeader <$> requestHeaders req)
82 . showString ", requestHttpVersion = "
82 . showString ", requestHttpVersion = "
83 . showsPrec 0 (requestHttpVersion req)
83 . showsPrec 0 (requestHttpVersion req)
84 . showString ", requestMethod = "
84 . showString ", requestMethod = "
85 . showsPrec 0 (requestMethod req)
85 . showsPrec 0 (requestMethod req)
86 . showString "}"
86 . showString "}"
87+ )
87 where
88 where
88 redactSensitiveHeader :: Header -> Header
89 redactSensitiveHeader :: Header -> Header
89 redactSensitiveHeader ("Authorization", _) = ("Authorization", "<REDACTED>")
90 redactSensitiveHeader ("Authorization", _) = ("Authorization", "<REDACTED>")
servant-client-core/test/Servant/Client/Core/RequestSpec.hs+12
@@ -10,10 +10,22 @@ import Data.List (isInfixOf)
10import Servant.Client.Core.Request
10import Servant.Client.Core.Request
11import Test.Hspec
11import Test.Hspec
12
12
13+newtype DataWithRequest = DataWithRequest (RequestF RequestBody ())
14+ deriving Show
15+
13spec :: Spec
16spec :: Spec
14spec = do
17spec = do
15 describe "Request" $ do
18 describe "Request" $ do
16 describe "show" $ do
19 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\"})"
17 it "redacts the authorization header" $ do
29 it "redacts the authorization header" $ do
18 let request = void $ defaultRequest { requestHeaders = pure ("authorization", "secret") }
30 let request = void $ defaultRequest { requestHeaders = pure ("authorization", "secret") }
19 isInfixOf "secret" (show request) `shouldBe` False
31 isInfixOf "secret" (show request) `shouldBe` False