diff --git a/contract/r/gnoswap/gov/staker/_helper_test.gno b/contract/r/gnoswap/gov/staker/_helper_test.gno index 7229f129..00848008 100644 --- a/contract/r/gnoswap/gov/staker/_helper_test.gno +++ b/contract/r/gnoswap/gov/staker/_helper_test.gno @@ -2,6 +2,10 @@ package staker import ( "std" + "testing" + + "gno.land/p/demo/testutils" + "gno.land/r/demo/wugnot" "gno.land/p/gnoswap/consts" ) @@ -23,13 +27,82 @@ var ( fee3000 uint32 = 3000 max_timeout int64 = 9999999999 + + userRealm = std.NewUserRealm(testutils.TestAddress("alice")) + user2Realm = std.NewUserRealm(testutils.TestAddress("bob")) + user3Realm = std.NewUserRealm(testutils.TestAddress("charlie")) + invalidAddr = testutils.TestAddress("invalid") + + realmPrefix = "/gno.land/r/gnoswap/v1/gov/staker" ) // Realms to mock frames var ( - adminRealm = std.NewUserRealm(admin) + adminRealm = std.NewUserRealm(admin) + userRealm = std.NewUserRealm(testutils.TestAddress("alice")) + user2Realm = std.NewUserRealm(testutils.TestAddress("bob")) + user3Realm = std.NewUserRealm(testutils.TestAddress("charlie")) + invalidAddr = testutils.TestAddress("invalid") - posRealm = std.NewCodeRealm(consts.POSITION_PATH) - rouRealm = std.NewCodeRealm(consts.ROUTER_PATH) - stkRealm = std.NewCodeRealm(consts.STAKER_PATH) + posRealm = std.NewCodeRealm(consts.POSITION_PATH) + rouRealm = std.NewCodeRealm(consts.ROUTER_PATH) + stakerRealm = std.NewCodeRealm(consts.STAKER_PATH) ) + +func makeFakeAddress(name string) std.Address { + return testutils.TestAddress(name) +} + +func ugnotTransfer(t *testing.T, from, to std.Address, amount uint64) { + t.Helper() + + std.TestSetRealm(std.NewUserRealm(from)) + std.TestSetOrigSend(std.Coins{{ugnotDenom, int64(amount)}}, nil) + banker := std.GetBanker(std.BankerTypeRealmSend) + + banker.SendCoins(from, to, std.Coins{{ugnotDenom, int64(amount)}}) +} + +func ugnotBalanceOf(t *testing.T, addr std.Address) uint64 { + t.Helper() + + banker := std.GetBanker(std.BankerTypeRealmIssue) + coins := banker.GetCoins(addr) + if len(coins) == 0 { + return 0 + } + + return uint64(coins.AmountOf(ugnotDenom)) +} + +func ugnotMint(t *testing.T, addr std.Address, denom string, amount int64) { + t.Helper() + std.TestIssueCoins(addr, std.Coins{{ugnotDenom, int64(amount)}}) +} + +func ugnotBurn(t *testing.T, addr std.Address, denom string, amount int64) { + t.Helper() + banker := std.GetBanker(std.BankerTypeRealmIssue) + banker.RemoveCoin(addr, ugnotDenom, amount) +} + +func ugnotFaucet(t *testing.T, to std.Address, amount uint64) { + t.Helper() + faucetAddress := consts.ADMIN + std.TestSetOrigCaller(faucetAddress) + + if ugnotBalanceOf(t, faucetAddress) < amount { + ugnotMint(t, faucetAddress, ugnotPath, int64(amount)) + std.TestSetOrigSend(std.Coins{{ugnotPath, int64(amount)}}, nil) + } + ugnotTransfer(t, faucetAddress, to, amount) +} + +func ugnotDeposit(t *testing.T, addr std.Address, amount uint64) { + t.Helper() + std.TestSetRealm(std.NewUserRealm(addr)) + wugnotAddr := consts.WUGNOT_ADDR + banker := std.GetBanker(std.BankerTypeRealmSend) + banker.SendCoins(addr, wugnotAddr, std.Coins{{ugnotDenom, int64(amount)}}) + wugnot.Deposit() +} diff --git a/contract/r/gnoswap/gov/staker/staker_test.gno b/contract/r/gnoswap/gov/staker/staker_test.gno index 1a378d29..ac0706f6 100644 --- a/contract/r/gnoswap/gov/staker/staker_test.gno +++ b/contract/r/gnoswap/gov/staker/staker_test.gno @@ -14,77 +14,6 @@ import ( "gno.land/r/gnoswap/v1/gov/xgns" ) -var ( - adminRealm = std.NewUserRealm(consts.ADMIN) - userRealm = std.NewUserRealm(testutils.TestAddress("alice")) - user2Realm = std.NewUserRealm(testutils.TestAddress("bob")) - user3Realm = std.NewUserRealm(testutils.TestAddress("charlie")) - invalidAddr = testutils.TestAddress("invalid") - - ugnotDenom string = "ugnot" - ugnotPath string = "ugnot" - wugnotPath string = "gno.land/r/demo/wugnot" - - realmPrefix = "/gno.land/r/gnoswap/v1/gov/staker" -) - -func makeFakeAddress(name string) std.Address { - return testutils.TestAddress(name) -} - -func ugnotTransfer(t *testing.T, from, to std.Address, amount uint64) { - t.Helper() - - std.TestSetRealm(std.NewUserRealm(from)) - std.TestSetOrigSend(std.Coins{{ugnotDenom, int64(amount)}}, nil) - banker := std.GetBanker(std.BankerTypeRealmSend) - - banker.SendCoins(from, to, std.Coins{{ugnotDenom, int64(amount)}}) -} - -func ugnotBalanceOf(t *testing.T, addr std.Address) uint64 { - t.Helper() - - banker := std.GetBanker(std.BankerTypeRealmIssue) - coins := banker.GetCoins(addr) - if len(coins) == 0 { - return 0 - } - - return uint64(coins.AmountOf(ugnotDenom)) -} - -func ugnotMint(t *testing.T, addr std.Address, denom string, amount int64) { - t.Helper() - std.TestIssueCoins(addr, std.Coins{{ugnotDenom, int64(amount)}}) -} - -func ugnotBurn(t *testing.T, addr std.Address, denom string, amount int64) { - t.Helper() - banker := std.GetBanker(std.BankerTypeRealmIssue) - banker.RemoveCoin(addr, ugnotDenom, amount) -} - -func ugnotFaucet(t *testing.T, to std.Address, amount uint64) { - t.Helper() - faucetAddress := consts.ADMIN - std.TestSetOrigCaller(faucetAddress) - - if ugnotBalanceOf(t, faucetAddress) < amount { - ugnotMint(t, faucetAddress, ugnotPath, int64(amount)) - std.TestSetOrigSend(std.Coins{{ugnotPath, int64(amount)}}, nil) - } - ugnotTransfer(t, faucetAddress, to, amount) -} - -func ugnotDeposit(t *testing.T, addr std.Address, amount uint64) { - t.Helper() - std.TestSetRealm(std.NewUserRealm(addr)) - wugnotAddr := consts.WUGNOT_ADDR - banker := std.GetBanker(std.BankerTypeRealmSend) - banker.SendCoins(addr, wugnotAddr, std.Coins{{ugnotDenom, int64(amount)}}) - wugnot.Deposit() -} func TestDelegate(t *testing.T) { std.TestSetOrigCaller(consts.ADMIN) diff --git a/contract/r/gnoswap/gov/staker/tests/governance_reward_protocol_fee_test.gnoA b/contract/r/gnoswap/gov/staker/tests/governance_reward_protocol_fee_test.gnoA index f2f372eb..6fb9650b 100644 --- a/contract/r/gnoswap/gov/staker/tests/governance_reward_protocol_fee_test.gnoA +++ b/contract/r/gnoswap/gov/staker/tests/governance_reward_protocol_fee_test.gnoA @@ -142,13 +142,13 @@ func reward(t *testing.T) { t.Run("collect reward", func(t *testing.T) { uassert.Equal(t, bar.BalanceOf(dummyAddr), uint64(0)) uassert.Equal(t, qux.BalanceOf(dummyAddr), uint64(0)) - // uassert.Equal(t, ugnotBalanceOf(t, dummyAddr), uint64(0)) + uassert.Equal(t, ugnotBalanceOf(t, dummyAddr), uint64(0)) std.TestSetRealm(dummyRealm) CollectReward() uassert.Equal(t, bar.BalanceOf(dummyAddr), uint64(833)) uassert.Equal(t, qux.BalanceOf(dummyAddr), uint64(2083)) - // uassert.Equal(t, ugnotBalanceOf(t, dummyAddr), uint64(8333)) + uassert.Equal(t, ugnotBalanceOf(t, dummyAddr), uint64(8333)) }) t.Run("same block", func(t *testing.T) { @@ -157,7 +157,7 @@ func reward(t *testing.T) { uassert.Equal(t, bar.BalanceOf(dummyAddr), uint64(833)) uassert.Equal(t, qux.BalanceOf(dummyAddr), uint64(2083)) - // uassert.Equal(t, ugnotBalanceOf(t, dummyAddr), uint64(8333)) + uassert.Equal(t, ugnotBalanceOf(t, dummyAddr), uint64(8333)) }) t.Run("more block", func(t *testing.T) { @@ -166,7 +166,7 @@ func reward(t *testing.T) { uassert.Equal(t, bar.BalanceOf(dummyAddr), uint64(833)) uassert.Equal(t, qux.BalanceOf(dummyAddr), uint64(2083)) - // uassert.Equal(t, ugnotBalanceOf(t, dummyAddr), uint64(8333)) + uassert.Equal(t, ugnotBalanceOf(t, dummyAddr), uint64(8333)) }) }