Include the request that failed in FailureResponse.
This commit is contained in:
parent
c84e650495
commit
b8de9c8527
2 changed files with 10 additions and 9 deletions
|
@ -48,7 +48,8 @@ import Web.HttpApiData
|
|||
|
||||
data ServantError
|
||||
= FailureResponse
|
||||
{ responseStatus :: Status
|
||||
{ failingRequest :: Request
|
||||
, responseStatus :: Status
|
||||
, responseContentType :: MediaType
|
||||
, responseBody :: ByteString
|
||||
}
|
||||
|
@ -71,8 +72,8 @@ data ServantError
|
|||
deriving (Show, Typeable)
|
||||
|
||||
instance Eq ServantError where
|
||||
FailureResponse a b c == FailureResponse x y z =
|
||||
(a, b, c) == (x, y, z)
|
||||
FailureResponse a b c d == FailureResponse w x y z =
|
||||
(show a, b, c, d) == (show w, x, y, z)
|
||||
DecodeFailure a b c == DecodeFailure x y z =
|
||||
(a, b, c) == (x, y, z)
|
||||
UnsupportedContentType a b == UnsupportedContentType x y =
|
||||
|
@ -250,7 +251,7 @@ performRequest reqMethod req = do
|
|||
Nothing -> throwError $ InvalidContentTypeHeader (cs t) body
|
||||
Just t' -> pure t'
|
||||
unless (status_code >= 200 && status_code < 300) $
|
||||
throwError $ FailureResponse status ct body
|
||||
throwError $ FailureResponse request status ct body
|
||||
return (status_code, body, ct, hdrs, response)
|
||||
|
||||
performRequestCT :: MimeUnrender ct result => Proxy ct -> Method -> Req
|
||||
|
|
|
@ -372,7 +372,7 @@ failSpec = beforeAll (startWaiApp failServer) $ afterAll endWaiApp $ do
|
|||
let (_ :<|> getDeleteEmpty :<|> _) = client api
|
||||
Left res <- runClientM getDeleteEmpty (ClientEnv manager baseUrl)
|
||||
case res of
|
||||
FailureResponse (HTTP.Status 404 "Not Found") _ _ -> return ()
|
||||
FailureResponse _ (HTTP.Status 404 "Not Found") _ _ -> return ()
|
||||
_ -> fail $ "expected 404 response, but got " <> show res
|
||||
|
||||
it "reports DecodeFailure" $ \(_, baseUrl) -> do
|
||||
|
|
Loading…
Reference in a new issue