-- | Module containing some utilities for testing Michelson contracts using -- Haskell testing frameworks (hspec and QuickCheck in particular). -- It's Morley testing EDSL. module Michelson.Test ( -- * Importing a contract specWithContract , specWithTypedContract , specWithUntypedContract , testTreesWithContract , testTreesWithUntypedContract , testTreesWithTypedContract , concatTestTrees , importContract , importUntypedContract -- * Unit testing , ContractReturn , ContractPropValidator , contractProp , contractPropVal , validateStorageIs -- * Integrational testing -- ** Testing engine , IntegrationalValidator , SuccessValidator , IntegrationalScenario , IntegrationalScenarioM , integrationalTestExpectation , integrationalTestProperty , originate , tOriginate , transfer , tTransfer , validate , integrationalFail , setMaxSteps , setNow , rewindTime , withSender , setChainId , branchout , (?-) -- ** Validators , composeValidators , composeValidatorsList , expectAnySuccess , expectNoUpdates , expectNoStorageUpdates , expectStorageUpdate , expectStorageUpdateConst , expectBalance , expectStorage , expectStorageConst , tExpectStorageConst , expectGasExhaustion , expectMichelsonFailed -- ** Various , TxData (..) , genesisAddress -- * General utilities , failedProp , succeededProp , qcIsLeft , qcIsRight -- * Autodoc testing , runDocTests , testDocBasic , excludeDocTests -- * Dummy values , dummyContractEnv -- * Arbitrary data , minTimestamp , maxTimestamp , midTimestamp ) where import Michelson.Doc.Test import Michelson.Test.Dummy import Michelson.Test.Gen import Michelson.Test.Import import Michelson.Test.Integrational import Michelson.Test.Unit import Michelson.Test.Util