1
+ {-# LANGUAGE CPP #-}
2
+
1
3
module Servant.QuickCheck.Internal.Equality where
2
4
3
5
import Data.Aeson (Value , decode , decodeStrict )
4
6
import Data.ByteString (ByteString )
5
7
import qualified Data.ByteString.Lazy as LB
6
8
import Data.Function (on )
7
9
import Network.HTTP.Client (Response , responseBody )
10
+ #if MIN_VERSION_http_client(0,7,0)
11
+ import Network.HTTP.Client (responseStatus , responseVersion , responseHeaders ,
12
+ responseBody , responseCookieJar , equivCookieJar )
13
+ #endif
8
14
import Data.Semigroup (Semigroup (.. ))
9
15
import Prelude.Compat
10
16
@@ -23,7 +29,17 @@ instance Monoid (ResponseEquality b) where
23
29
--
24
30
-- /Since 0.0.0.0/
25
31
allEquality :: Eq b => ResponseEquality b
32
+ #if MIN_VERSION_http_client(0,7,0)
33
+ allEquality = ResponseEquality $ \ resp resp' -> and
34
+ [ responseStatus resp == responseStatus resp'
35
+ , responseVersion resp == responseVersion resp'
36
+ , responseHeaders resp == responseHeaders resp'
37
+ , responseBody resp == responseBody resp'
38
+ , responseCookieJar resp `equivCookieJar` responseCookieJar resp'
39
+ ]
40
+ #else
26
41
allEquality = ResponseEquality (==)
42
+ #endif
27
43
28
44
-- | ByteString `Eq` instance over the response body.
29
45
--
0 commit comments