Merge pull request #74 from Liqwid-Labs/connor/target-separation

Break `agora-test` into pieces; add test file for utility functions
This commit is contained in:
方泓睿 2022-05-12 19:48:48 +08:00 committed by GitHub
commit 2a0c6eb4a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 77 additions and 39 deletions

View file

@ -1,11 +1,11 @@
{- |
Module : Spec.Sample.Effect.TreasuryWithdrawalEffect
Module : Sample.Effect.TreasuryWithdrawalEffect
Maintainer : seungheon.ooh@gmail.com
Description: Sample based testing for Treasury Withdrawal Effect
This module provides smaples for Treasury Withdrawal Effect tests.
This module provides samples for Treasury Withdrawal Effect tests.
-}
module Spec.Sample.Effect.TreasuryWithdrawal (
module Sample.Effect.TreasuryWithdrawal (
inputTreasury,
inputUser,
inputGAT,

View file

@ -1,11 +1,11 @@
{- |
Module : Spec.Sample.Proposal
Module : Sample.Proposal
Maintainer : emi@haskell.fyi
Description: Sample based testing for Proposal utxos
This module tests primarily the happy path for Proposal interactions
-}
module Spec.Sample.Proposal (
module Sample.Proposal (
-- * Script contexts
proposalCreation,
cosignProposal,
@ -49,8 +49,8 @@ import Agora.Proposal (
import Agora.Stake (Stake (..), StakeDatum (StakeDatum))
import Plutarch.SafeMoney (Tagged (Tagged), untag)
import PlutusTx.AssocMap qualified as AssocMap
import Spec.Sample.Shared
import Spec.Util (datumPair, toDatumHash)
import Sample.Shared
import Test.Util (datumPair, toDatumHash)
--------------------------------------------------------------------------------

View file

@ -1,11 +1,11 @@
{- |
Module : Spec.Sample.Shared
Module : Sample.Shared
Maintainer : emi@haskell.fyi
Description: Shared useful values for creating Samples for testing.
Shared useful values for creating Samples for testing.
-}
module Spec.Sample.Shared (
module Sample.Shared (
-- * Misc
signer,
signer2,

View file

@ -1,11 +1,11 @@
{- |
Module : Spec.Sample.Stake
Module : Sample.Stake
Maintainer : emi@haskell.fyi
Description: Sample based testing for Stake utxos
This module tests primarily the happy path for Stake creation
-}
module Spec.Sample.Stake (
module Sample.Stake (
stake,
stakeSymbol,
validatorHashTN,
@ -48,8 +48,8 @@ import Agora.SafeMoney (GTTag)
import Agora.Stake
import Agora.Stake.Scripts (stakeValidator)
import Plutarch.SafeMoney
import Spec.Sample.Shared
import Spec.Util (datumPair, toDatumHash)
import Sample.Shared
import Test.Util (datumPair, toDatumHash)
--------------------------------------------------------------------------------

View file

@ -1,14 +1,14 @@
{-# LANGUAGE TemplateHaskell #-}
{- |
Module: Spec.Sample.Treasury
Module: Sample.Treasury
Description: Sample data for `Spec.Treasury`.
Maintainer: jack@mlabs.city
This module contains sample data, used in the tests written in
`Spec.Treasury`.
-}
module Spec.Sample.Treasury (
module Sample.Treasury (
gatCs,
validCtx,
treasuryRef,
@ -38,7 +38,7 @@ import Plutus.V1.Ledger.Scripts (
ValidatorHash (ValidatorHash),
)
import Plutus.V1.Ledger.Value qualified as Value
import Spec.Sample.Shared (
import Sample.Shared (
gatCs,
gatTn,
minAda,
@ -47,7 +47,7 @@ import Spec.Sample.Shared (
treasuryOut,
wrongEffHash,
)
import Spec.Util (datumPair)
import Test.Util (datumPair)
{- | A `ScriptContext` that should be compatible with treasury
transactions.

View file

@ -12,6 +12,7 @@ import Spec.Model.MultiSig qualified as MultiSig
import Spec.Proposal qualified as Proposal
import Spec.Stake qualified as Stake
import Spec.Treasury qualified as Treasury
import Spec.Utils qualified as Utils
-- | The Agora test suite.
main :: IO ()
@ -37,6 +38,12 @@ main =
, testGroup
"Treasury tests"
Treasury.tests
, testGroup
"AuthorityToken tests"
AuthorityToken.tests
, testGroup
"Utility functions tests"
Utils.tests
, testGroup
"Multisig tests"
[ testGroup

View file

@ -33,7 +33,7 @@ import Plutus.V1.Ledger.Api (
import Plutus.V1.Ledger.Interval qualified as Interval
import Plutus.V1.Ledger.Value qualified as Value
import PlutusTx.AssocMap qualified as AssocMap
import Spec.Util (scriptFails, scriptSucceeds)
import Test.Util (scriptFails, scriptSucceeds)
currencySymbol :: CurrencySymbol
currencySymbol = "deadbeef"

View file

@ -12,7 +12,7 @@ import Agora.Effect.TreasuryWithdrawal (
treasuryWithdrawalValidator,
)
import Plutus.V1.Ledger.Value qualified as Value
import Spec.Sample.Effect.TreasuryWithdrawal (
import Sample.Effect.TreasuryWithdrawal (
buildReceiversOutputFromDatum,
buildScriptContext,
currSymbol,
@ -25,8 +25,8 @@ import Spec.Sample.Effect.TreasuryWithdrawal (
treasuries,
users,
)
import Spec.Util (effectFailsWith, effectSucceedsWith)
import Test.Tasty (TestTree, testGroup)
import Test.Util (effectFailsWith, effectSucceedsWith)
tests :: [TestTree]
tests =

View file

@ -34,11 +34,11 @@ import Agora.Stake.Scripts (stakeValidator)
import Plutarch.SafeMoney (Tagged (Tagged))
import Plutus.V1.Ledger.Api (ScriptContext (..), ScriptPurpose (..))
import PlutusTx.AssocMap qualified as AssocMap
import Spec.Sample.Proposal qualified as Proposal
import Spec.Sample.Shared (signer, signer2)
import Spec.Sample.Shared qualified as Shared
import Spec.Util (policySucceedsWith, validatorSucceedsWith)
import Sample.Proposal qualified as Proposal
import Sample.Shared (signer, signer2)
import Sample.Shared qualified as Shared
import Test.Tasty (TestTree, testGroup)
import Test.Util (policySucceedsWith, validatorSucceedsWith)
--------------------------------------------------------------------------------

View file

@ -24,9 +24,9 @@ import Agora.Stake.Scripts (stakePolicy, stakeValidator)
--------------------------------------------------------------------------------
import Spec.Sample.Stake (DepositWithdrawExample (DepositWithdrawExample, delta, startAmount), signer)
import Spec.Sample.Stake qualified as Stake
import Spec.Util (policyFailsWith, policySucceedsWith, toDatum, validatorFailsWith, validatorSucceedsWith)
import Sample.Stake (DepositWithdrawExample (DepositWithdrawExample, delta, startAmount), signer)
import Sample.Stake qualified as Stake
import Test.Util (policyFailsWith, policySucceedsWith, toDatum, validatorFailsWith, validatorSucceedsWith)
--------------------------------------------------------------------------------

View file

@ -37,10 +37,10 @@ import Plutus.V1.Ledger.Credential (
StakingCredential (StakingHash),
)
import Plutus.V1.Ledger.Value qualified as Value
import Spec.Sample.Shared (
import Sample.Shared (
trCredential,
)
import Spec.Sample.Treasury (
import Sample.Treasury (
gatCs,
gatTn,
trCtxGATNameNotAddress,
@ -48,8 +48,8 @@ import Spec.Sample.Treasury (
validCtx,
walletIn,
)
import Spec.Util (validatorFailsWith, validatorSucceedsWith)
import Test.Tasty (TestTree, testGroup)
import Test.Util (validatorFailsWith, validatorSucceedsWith)
tests :: [TestTree]
tests =

13
agora-test/Spec/Utils.hs Normal file
View file

@ -0,0 +1,13 @@
{- |
Module : Spec.Utils
Maintainer : emi@haskell.fyi
Description: Tests for utility functions in 'Agora.Utils'.
Tests for utility functions in 'Agora.Utils'.
-}
module Spec.Utils (tests) where
import Test.Tasty (TestTree)
tests :: [TestTree]
tests = []

View file

@ -1,5 +1,5 @@
{- |
Module : Spec.Util
Module : Test.Util
Maintainer : emi@haskell.fyi
Description: Utility functions for testing Plutarch scripts with ScriptContext
@ -22,7 +22,7 @@ Utility functions for testing Plutarch scripts with ScriptContext:
- 'scriptFails': checks that an arbitrary script `perror`s out.
-}
module Spec.Util (
module Test.Util (
-- * Testing utils
scriptSucceeds,
scriptFails,

View file

@ -152,6 +152,26 @@ library pprelude
hs-source-dirs: agora
default-language: Haskell2010
library agora-testlib
import: lang, deps, test-deps
exposed-modules: Test.Util
hs-source-dirs: agora-testlib
library agora-sample
import: lang, deps, test-deps
build-depends:
, agora
, agora-testlib
exposed-modules:
Sample.Effect.TreasuryWithdrawal
Sample.Proposal
Sample.Shared
Sample.Stake
Sample.Treasury
hs-source-dirs: agora-sample
test-suite agora-test
import: lang, deps, test-deps
type: exitcode-stdio-1.0
@ -162,16 +182,14 @@ test-suite agora-test
Spec.Effect.TreasuryWithdrawal
Spec.Model.MultiSig
Spec.Proposal
Spec.Sample.Effect.TreasuryWithdrawal
Spec.Sample.Proposal
Spec.Sample.Shared
Spec.Sample.Stake
Spec.Sample.Treasury
Spec.Stake
Spec.Treasury
Spec.Util
Spec.Utils
build-depends: agora
build-depends:
, agora
, agora-sample
, agora-testlib
benchmark agora-bench
import: lang, deps