unlock_test.gno
1.88 Kb ยท 85 lines
1package params
2
3import (
4 "testing"
5
6 "gno.land/p/nt/testutils"
7 "gno.land/p/nt/urequire"
8 "gno.land/r/gov/dao"
9 ini "gno.land/r/gov/dao/v3/init"
10 susers "gno.land/r/sys/users"
11)
12
13var g1user = testutils.TestAddress("g1user")
14
15func init() {
16 testing.SetRealm(testing.NewUserRealm(g1user))
17 ini.InitWithUsers(g1user)
18 registerTestUsers(g1user)
19}
20
21const gUsersV1Path = "gno.land/r/gnoland/users/v1"
22
23// Register a namespace for every addresses
24// Necessary to test GovDAO Vote
25func registerTestUsers(addrs ...address) {
26 // Set realm to users admin to register test user
27 testing.SetRealm(testing.NewCodeRealm(gUsersV1Path))
28 for _, addr := range addrs {
29 err := susers.RegisterUser(cross, addr.String()[1:], addr)
30 if err != nil {
31 panic(err.Error() + " : " + addr.String())
32 }
33 }
34}
35
36func TestProUnlockTransfer(t *testing.T) {
37 testing.SetRealm(testing.NewUserRealm(g1user))
38
39 pr := ProposeUnlockTransferRequest()
40 id := dao.MustCreateProposal(cross, pr)
41 p, err := dao.GetProposal(cross, id)
42 urequire.NoError(t, err)
43 urequire.Equal(t, unlockTransferTitle, p.Title())
44}
45
46func TestFailUnlockTransfer(t *testing.T) {
47 testing.SetRealm(testing.NewUserRealm(g1user))
48
49 pr := ProposeUnlockTransferRequest()
50 id := dao.MustCreateProposal(cross, pr)
51 urequire.AbortsWithMessage(
52 t,
53 "proposal didn't reach supermajority yet: 66",
54 func() {
55 dao.ExecuteProposal(cross, id)
56 },
57 )
58}
59
60func TestExeUnlockTransfer(t *testing.T) {
61 testing.SetRealm(testing.NewUserRealm(g1user))
62
63 pr := ProposeUnlockTransferRequest()
64 id := dao.MustCreateProposal(cross, pr)
65 _, err := dao.GetProposal(cross, id)
66 urequire.NoError(t, err)
67 // urequire.True(t, dao.Active == p.Status()) // TODO
68
69 urequire.NotPanics(
70 t,
71 func() {
72 dao.MustVoteOnProposal(cross, dao.VoteRequest{
73 Option: dao.YesVote,
74 ProposalID: dao.ProposalID(id),
75 })
76 },
77 )
78
79 urequire.NotPanics(
80 t,
81 func() {
82 dao.ExecuteProposal(cross, id)
83 },
84 )
85}