morley-upgradeable-0.3: src/Lorentz/Contracts/Upgradeable/Test.hs
-- SPDX-FileCopyrightText: 2020 Tocqueville Group
--
-- SPDX-License-Identifier: LicenseRef-MIT-TQ
module Lorentz.Contracts.Upgradeable.Test
( -- * Test predicates
testUpgradeableContractDoc
-- * Individual test predicates
, testSingleVersion
) where
import Prelude
import Test.HUnit (assertFailure)
import Lorentz.Contracts.Upgradeable.Common
import Lorentz.Test.Doc
-- | Check that contract documentation mentions version only once.
testSingleVersion :: DocTest
testSingleVersion =
mkDocTest "Version documented" $
\doc ->
case allContractDocItems @DVersion doc of
[] -> assertFailure "Contract contains no 'DVersion'"
[_] -> pass
_ -> assertFailure "Contract contains several 'DVersion's"
-- | Test all properties of upgradeable contract.
testUpgradeableContractDoc :: [DocTest]
testUpgradeableContractDoc = mconcat
[ testLorentzDoc
, [ testSingleVersion
]
]