git.iko.soy/servant-quickcheck
on master help sign in
Add sanity check test in there to prove jsonEquality really is doing something different
3f68561Erik Aker
test/Servant/QuickCheck/InternalSpec.hs+8−2
@@ -71,12 +71,18 @@ serversEqualSpec = describe "serversEqual" $ do
71
71
72 context "when JSON is equal but looks a bit different as a ByteString" $ do
72 context "when JSON is equal but looks a bit different as a ByteString" $ do
73
73
74+ it "sanity check: different whitespace same JSON objects bodyEquality fails" $ do
75+ Right (Failure _ err) <- withServantServer jsonApi jsonServer1 $ \burl1 ->
76+ withServantServer jsonApi jsonServer2 $ \burl2 -> do
77+ safeEvalExample $ serversEqual jsonApi burl1 burl2 args bodyEquality
78+ show err `shouldContain` "Server equality failed"
79+
74− it "considers equal JSON apis equal regardless of ordering or whitespace" $ do
80+ it "jsonEquality considers equal JSON apis equal regardless of key ordering or whitespace" $ do
75 withServantServerAndContext jsonApi ctx jsonServer1 $ \burl1 ->
81 withServantServerAndContext jsonApi ctx jsonServer1 $ \burl1 ->
76 withServantServerAndContext jsonApi ctx jsonServer2 $ \burl2 ->
82 withServantServerAndContext jsonApi ctx jsonServer2 $ \burl2 ->
77 serversEqual jsonApi burl1 burl2 args jsonEquality
83 serversEqual jsonApi burl1 burl2 args jsonEquality
78
84
79− it "sees when JSON apis are not equal regardless of ordering or whitespace" $ do
85+ it "sees when JSON apis are not equal because any value is different" $ do
80 Right (Failure _ err) <- withServantServer jsonApi jsonServer2 $ \burl1 ->
86 Right (Failure _ err) <- withServantServer jsonApi jsonServer2 $ \burl1 ->
81 withServantServer jsonApi jsonServer3 $ \burl2 -> do
87 withServantServer jsonApi jsonServer3 $ \burl2 -> do
82 safeEvalExample $ serversEqual jsonApi burl1 burl2 args jsonEquality
88 safeEvalExample $ serversEqual jsonApi burl1 burl2 args jsonEquality