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