lorentz-0.1.0: src/Lorentz/Test/Import.hs
-- | Mirrors 'Michelson.Test.Import' module in a Lorentz way.
module Lorentz.Test.Import
( testTreesWithContractL
, specWithContractL
) where
import Data.Singletons (SingI)
import Test.Hspec (Spec)
import Test.Tasty (TestTree)
import qualified Lorentz.Base as L
import Michelson.Test.Import (specWithContract, testTreesWithContract)
import Michelson.Typed (ToT)
import qualified Michelson.Untyped as U
-- | Like 'testTreesWithContract' but for Lorentz types.
testTreesWithContractL
:: (Each [Typeable, SingI] [ToT cp, ToT st], HasCallStack)
=> FilePath -> ((U.Contract, L.Contract cp st) -> IO [TestTree]) -> IO [TestTree]
testTreesWithContractL file testImpl = testTreesWithContract file (testImpl . second L.I)
-- | Like 'specWithContract', but for Lorentz types.
specWithContractL
:: (Each [Typeable, SingI] [ToT cp, ToT st], HasCallStack)
=> FilePath -> ((U.Contract, L.Contract cp st) -> Spec) -> Spec
specWithContractL file mkSpec = specWithContract file (mkSpec . second L.I)