package params
import (
"testing"
"gno.land/p/nt/testutils/v0"
"gno.land/p/nt/urequire/v0"
"gno.land/r/gov/dao"
ini "gno.land/r/gov/dao/v3/init"
)
var g1user = testutils.TestAddress("g1user")
func init() {
testing.SetRealm(testing.NewUserRealm(g1user))
ini.InitWithUsers(g1user)
}
func TestProUnlockTransfer(t *testing.T) {
testing.SetRealm(testing.NewUserRealm(g1user))
pr := ProposeUnlockTransferRequest()
id := dao.MustCreateProposal(cross, pr)
p, err := dao.GetProposal(cross, id)
urequire.NoError(t, err)
urequire.Equal(t, unlockTransferTitle, p.Title())
}
func TestFailUnlockTransfer(t *testing.T) {
testing.SetRealm(testing.NewUserRealm(g1user))
pr := ProposeUnlockTransferRequest()
id := dao.MustCreateProposal(cross, pr)
urequire.AbortsWithMessage(
t,
"proposal didn't reach supermajority yet: 66.66",
func() {
dao.ExecuteProposal(cross, id)
},
)
}
func TestExeUnlockTransfer(t *testing.T) {
testing.SetRealm(testing.NewUserRealm(g1user))
pr := ProposeUnlockTransferRequest()
id := dao.MustCreateProposal(cross, pr)
_, err := dao.GetProposal(cross, id)
urequire.NoError(t, err)
// urequire.True(t, dao.Active == p.Status()) // TODO
urequire.NotPanics(
t,
func() {
dao.MustVoteOnProposal(cross, dao.VoteRequest{
Option: dao.YesVote,
ProposalID: dao.ProposalID(id),
})
},
)
urequire.NotPanics(
t,
func() {
dao.ExecuteProposal(cross, id)
},
)
}