git.iko.soy/typeable/servant
on master help sign in
Don't override status code on empty body.
commitc6071bfb02de5815facf9acce4d4c7fbda7d92ef authorJulian K. Arni <jkarni@gmail.com> dateSun 27 Dec 2015, 02:05 (11 years ago) parent190c75a
2 files changed+5−6
servant-server/src/Servant/Server/Internal.hs−1 servant-server/test/Servant/ServerSpec.hs+5−5
servant-server/src/Servant/Server/Internal.hs−1
@@ -139,7 +139,6 @@ processMethodRouter :: Maybe (BL.ByteString, BL.ByteString) -> Status -> Method
139139 -> Request -> RouteResult Response
140140processMethodRouter handleA status method headers request = case handleA of
141141 Nothing -> FailFatal err406 -- this should not happen (checked before), so we make it fatal if it does
142− Just (_, "") -> Route $ responseLBS status204 (fromMaybe [] headers) ""
143142 Just (contentT, body) -> Route $ responseLBS status hdrs bdy
144143 where
145144 bdy = if allowedMethodHead method request then "" else body
servant-server/test/Servant/ServerSpec.hs+5−5
@@ -157,7 +157,7 @@ getSpec = do
157157 post "/empty" "" `shouldRespondWith` 405
158158
159159 it "returns headers" $ do
160− get "/emptyWithHeaders" `shouldRespondWith` 204 { matchHeaders = [ "H" <:> "5" ] }
160+ get "/emptyWithHeaders" `shouldRespondWith` 200 { matchHeaders = [ "H" <:> "5" ] }
161161
162162 it "returns 406 if the Accept header is not supported" $ do
163163 Test.Hspec.Wai.request methodGet "" [(hAccept, "crazy/mime")] ""
@@ -407,16 +407,16 @@ headerSpec = describe "Servant.API.Header" $ do
407407 expectsString Nothing = error "Expected a string"
408408
409409 with (return (serve headerApi expectsInt)) $ do
410− let delete' x = Test.Hspec.Wai.request methodDelete x [("MyHeader" ,"5")]
410+ let delete' x = Test.Hspec.Wai.request methodDelete x [("MyHeader", "5")]
411411
412412 it "passes the header to the handler (Int)" $
413− delete' "/" "" `shouldRespondWith` 204
413+ delete' "/" "" `shouldRespondWith` 200
414414
415415 with (return (serve headerApi expectsString)) $ do
416− let delete' x = Test.Hspec.Wai.request methodDelete x [("MyHeader" ,"more from you")]
416+ let delete' x = Test.Hspec.Wai.request methodDelete x [("MyHeader", "more from you")]
417417
418418 it "passes the header to the handler (String)" $
419− delete' "/" "" `shouldRespondWith` 204
419+ delete' "/" "" `shouldRespondWith` 200
420420
421421
422422type RawApi = "foo" :> Raw