From b4a69516d23602f588d78c5dccc9c20f35cf2947 Mon Sep 17 00:00:00 2001 From: parsonsmatt Date: Wed, 9 May 2018 14:30:38 -0600 Subject: [PATCH] Allow clients to pass a manager in --- src/Servant/QuickCheck/Internal/QuickCheck.hs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/Servant/QuickCheck/Internal/QuickCheck.hs b/src/Servant/QuickCheck/Internal/QuickCheck.hs index 315f4f1..53d90f6 100644 --- a/src/Servant/QuickCheck/Internal/QuickCheck.hs +++ b/src/Servant/QuickCheck/Internal/QuickCheck.hs @@ -110,11 +110,15 @@ serversEqual api burl1 burl2 args req = do -- /Since 0.0.0.0/ serverSatisfies :: (HasGenRequest a) => Proxy a -> BaseUrl -> Args -> Predicates -> Expectation -serverSatisfies api burl args preds = do +serverSatisfies api = serverSatisfiesMgr api defManager + +serverSatisfiesMgr :: (HasGenRequest a) => + Proxy a -> C.Manager -> BaseUrl -> Args -> Predicates -> Expectation +serverSatisfiesMgr api manager burl args preds = do let reqs = ($ burl) <$> runGenRequest api deetsMVar <- newMVar $ error "should not be called" r <- quickCheckWithResult args { chatty = False } $ monadicIO $ forAllM reqs $ \req -> do - v <- run $ finishPredicates preds (noCheckStatus req) defManager + v <- run $ finishPredicates preds (noCheckStatus req) manager run $ modifyMVar_ deetsMVar $ const $ return v case v of Just _ -> assert False @@ -127,13 +131,16 @@ serverSatisfies api burl args preds = do NoExpectedFailure {} -> expectationFailure $ "No expected failure" InsufficientCoverage {} -> expectationFailure $ "Insufficient coverage" - serverDoesntSatisfy :: (HasGenRequest a) => Proxy a -> BaseUrl -> Args -> Predicates -> Expectation -serverDoesntSatisfy api burl args preds = do +serverDoesntSatisfy api = serverDoesntSatisfyMgr api defManager + +serverDoesntSatisfyMgr :: (HasGenRequest a) => + Proxy a -> C.Manager -> BaseUrl -> Args -> Predicates -> Expectation +serverDoesntSatisfyMgr api manager burl args preds = do let reqs = ($ burl) <$> runGenRequest api r <- quickCheckWithResult args $ monadicIO $ forAllM reqs $ \req -> do - v <- run $ finishPredicates preds (noCheckStatus req) defManager + v <- run $ finishPredicates preds (noCheckStatus req) manager assert $ not $ null v case r of Success {} -> return ()