Skip to content

Commit

Permalink
test: fix gov/staker
Browse files Browse the repository at this point in the history
  • Loading branch information
r3v4s committed Jan 24, 2025
1 parent 06920d9 commit 1f927bc
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 79 deletions.
81 changes: 77 additions & 4 deletions contract/r/gnoswap/gov/staker/_helper_test.gno
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ package staker

import (
"std"
"testing"

"gno.land/p/demo/testutils"
"gno.land/r/demo/wugnot"

"gno.land/p/gnoswap/consts"
)
Expand All @@ -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()
}
71 changes: 0 additions & 71 deletions contract/r/gnoswap/gov/staker/staker_test.gno
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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) {
Expand All @@ -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))
})
}

Expand Down

0 comments on commit 1f927bc

Please sign in to comment.