package params import ( "std" "testing" "gno.land/p/nt/testutils" "gno.land/p/nt/urequire" "gno.land/r/gov/dao" ini "gno.land/r/gov/dao/v3/init" susers "gno.land/r/sys/users" ) var ( g1user = testutils.TestAddress("g1user") ) func init() { testing.SetRealm(std.NewUserRealm(g1user)) ini.InitWithUsers(g1user) registerTestUsers(g1user) } const gUsersV1Path = "gno.land/r/gnoland/users/v1" // Register a namespace for every addresses // Necessary to test GovDAO Vote func registerTestUsers(addrs ...std.Address) { // Set realm to users admin to register test user testing.SetRealm(std.NewCodeRealm(gUsersV1Path)) for _, addr := range addrs { err := susers.RegisterUser(cross, addr.String()[1:], addr) if err != nil { panic(err.Error() + " : " + addr.String()) } } } func TestProUnlockTransfer(t *testing.T) { testing.SetRealm(std.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(std.NewUserRealm(g1user)) pr := ProposeUnlockTransferRequest() id := dao.MustCreateProposal(cross, pr) urequire.AbortsWithMessage( t, "proposal didn't reach supermajority yet: 66", func() { dao.ExecuteProposal(cross, id) }, ) } func TestExeUnlockTransfer(t *testing.T) { testing.SetRealm(std.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) }, ) }