@@ -23,10 +23,12 @@ import Test.QuickCheck (Args (..), Property, forAll, Result (
2323 quickCheckWithResult, stdArgs)
2424import System.IO.Unsafe (unsafePerformIO)
2525import Test.QuickCheck.Monadic
26+import qualified Data.ByteString.Lazy as BSL
2627
2728import Servant.QuickCheck.Internal.HasGenRequest
2829import Servant.QuickCheck.Internal.Predicates
2930import Servant.QuickCheck.Internal.Benchmarking
31+import Servant.QuickCheck.Internal.Equality
3032
3133
3234-- | Start a servant application on an open port, run the provided function,
@@ -49,13 +51,13 @@ withServantServer api server t
4951-- Evidently, if the behaviour of the server is expected to be
5052-- non-deterministic, this function may produce spurious failures
5153serversEqual :: HasGenRequest a =>
52− Proxy a -> BaseUrl -> BaseUrl -> Args -> Expectation
53−serversEqual api burl1 burl2 args = do
54+ Proxy a -> BaseUrl -> BaseUrl -> Args -> ResponseEquality BSL.ByteString -> Expectation
55+serversEqual api burl1 burl2 args req = do
5456 let reqs = (\f -> (f burl1, f burl2)) <$> genRequest api
5557 r <- quickCheckWithResult args $ monadicIO $ forAllM reqs $ \(req1, req2) -> do
5658 resp1 <- run $ httpLbs req1 defManager
5759 resp2 <- run $ httpLbs req2 defManager
58− assert $ resp1 == resp2
60+ assert $ getResponseEquality req resp1 resp2
5961 case r of
6062 Success {} -> return ()
6163 GaveUp { numTests = n } -> expectationFailure $ "Gave up after " ++ show n ++ " tests"