Now it checks specific treasury

Emily's suggestion on the review
This commit is contained in:
Seungheon Oh 2022-04-22 11:18:38 -04:00
parent efb0776730
commit e91dcb7ce1
4 changed files with 64 additions and 34 deletions

View file

@ -7,16 +7,16 @@ This module tests the Treasury Withdrawal Effect.
-}
module Spec.Effect.TreasuryWithdrawal (tests) where
import Spec.Sample.Effect.TreasuryWithdrawal (
buildReceiversOutputFromDatum,
buildScriptContext,
currSymbol,
inputGAT,
inputTreasury,
outputTreasury,
outputUser,
users,
)
import Spec.Sample.Effect.TreasuryWithdrawal
( currSymbol,
users,
treasuries,
inputGAT,
inputTreasury,
outputTreasury,
outputUser,
buildReceiversOutputFromDatum,
buildScriptContext )
import Agora.Effect.TreasuryWithdrawal (
TreasuryWithdrawalDatum (TreasuryWithdrawalDatum),
@ -102,6 +102,18 @@ tests =
]
++ drop 1 (buildReceiversOutputFromDatum datum2)
)
, effectFailsWith
"Unauthorized treasury"
(treasuryWithdrawalValidator currSymbol)
datum3
( buildScriptContext
[ inputGAT
, inputTreasury 999 (asset1 20)
]
$ [ outputTreasury 999 (asset1 17)
]
++ buildReceiversOutputFromDatum datum3
)
]
]
where
@ -112,10 +124,26 @@ tests =
[ (head users, asset1 1)
, (users !! 1, asset1 1)
, (users !! 2, asset1 1)
] $
[ head treasuries
, treasuries !! 1
, treasuries !! 2
]
datum2 =
TreasuryWithdrawalDatum
[ (head users, asset1 4 <> asset2 5)
, (users !! 1, asset1 2 <> asset2 1)
, (users !! 2, asset1 1)
] $
[ head treasuries
, treasuries !! 1
, treasuries !! 2
]
datum3 =
TreasuryWithdrawalDatum
[ (head users, asset1 1)
, (users !! 1, asset1 1)
, (users !! 2, asset1 1)
] $
[ treasuries !! 1
]

View file

@ -112,7 +112,7 @@ outputUser indx val =
}
buildReceiversOutputFromDatum :: TreasuryWithdrawalDatum -> [TxOut]
buildReceiversOutputFromDatum (TreasuryWithdrawalDatum xs) = f <$> xs
buildReceiversOutputFromDatum (TreasuryWithdrawalDatum xs _) = f <$> xs
where
f x =
TxOut

View file

@ -156,7 +156,7 @@ effectFailsWith ::
TestTree
effectFailsWith tag eff datum scriptContext =
validatorFailsWith tag eff datum () scriptContext
-- | Check that an arbitrary script doesn't error when evaluated, given a name.
scriptSucceeds :: String -> Script -> TestTree
scriptSucceeds name script = testCase name $ do