git.iko.soy/servant-quickcheck
on master help sign in
Merge pull request #57 from Phenitei/notAllowedBug

Fix #56: a notAllowedContainsAllowHeader bug

commit7d6a97af5ada9f90606ad70da9525de893f14696 authorAlp Mestanogullari <alpmestan@gmail.com> dateWed 29 Aug 2018, 12:01 (8 years ago) parent9743ac589c9170
1 file changed+7−6
src/Servant/QuickCheck/Internal/Predicates.hs+7−6
src/Servant/QuickCheck/Internal/Predicates.hs+7−6
@@ -187,14 +187,15 @@ getsHaveLastModifiedHeader
187187notAllowedContainsAllowHeader :: RequestPredicate
188188notAllowedContainsAllowHeader
189189 = RequestPredicate $ \req mgr -> do
190− resp <- mapM (flip httpLbs mgr) $ [ req { method = renderStdMethod m }
191− | m <- [minBound .. maxBound ]
192− , renderStdMethod m /= method req ]
193− case filter pred' resp of
194− (x:_) -> throw $ PredicateFailure "notAllowedContainsAllowHeader" (Just req) x
190+ let reqs = [ req { method = renderStdMethod m } | m <- [minBound .. maxBound]
191+ , renderStdMethod m /= method req ]
192+ resp <- mapM (flip httpLbs mgr) reqs
193+
194+ case filter pred' (zip reqs resp) of
195+ (x:_) -> throw $ PredicateFailure "notAllowedContainsAllowHeader" (Just $ fst x) (snd x)
195196 [] -> return resp
196197 where
197− pred' resp = responseStatus resp == status405 && not (hasValidHeader "Allow" go resp)
198+ pred' (_, resp) = responseStatus resp == status405 && not (hasValidHeader "Allow" go resp)
198199 where
199200 go x = all (\y -> isRight $ parseMethod $ SBSC.pack y)
200201 $ wordsBy (`elem` (", " :: [Char])) (SBSC.unpack x)