From c402d09e5cbf71f2e0dd19d364af945c833e055b Mon Sep 17 00:00:00 2001 From: Ashley Stacey Date: Wed, 4 Sep 2019 11:32:40 +1000 Subject: [PATCH] [#500] Trails-tests: Add test case to verify that trail entry order doesn't matter. --- projects/trails/test/Mirza/Trails/Tests/Client.hs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/projects/trails/test/Mirza/Trails/Tests/Client.hs b/projects/trails/test/Mirza/Trails/Tests/Client.hs index 2bed18a3..3b2e2b2d 100644 --- a/projects/trails/test/Mirza/Trails/Tests/Client.hs +++ b/projects/trails/test/Mirza/Trails/Tests/Client.hs @@ -379,6 +379,21 @@ clientSpec = do noPreviousAddGetResult <- http $ getTrailByEventId (trailEntryEventId noPreviousEntry) noPreviousAddGetResult `shouldSatisfy` isLeft + step "Test that the order of entries in a trail with parent entries in the trail submitted doesn't matter" + -- Explicitly we want to test that the trail doesn't have to be structured so that the previous entries appear explicitly before/after they are referenced from other entries. + trailOrder1 <- buildTwoEntryTrail + trailOrder2 <- swapIO $ buildTwoEntryTrail + verifyValidTrailTestIntegrityCheck trailOrder1 + verifyValidTrailTestIntegrityCheck trailOrder2 + trailOrder1Result <- http $ addTrail trailOrder1 + trailOrder1Result `shouldBe` Right NoContent + trailOrder2Result <- http $ addTrail trailOrder2 + trailOrder2Result `shouldBe` Right NoContent + trailOrder1GetBySignatureResult <- http $ getTrailBySignature $ firstSignature trailOrder1 + trailOrder1GetBySignatureResult `shouldMatchTrail` trailOrder1 + trailOrder2GetBySignatureResult <- http $ getTrailBySignature $ firstSignature trailOrder2 + trailOrder2GetBySignatureResult `shouldMatchTrail` trailOrder2 + -- TODO: Test that invalid signature fails.