cla_test.gno
1.84 Kb · 89 lines
1package cla
2
3import (
4 "testing"
5
6 "gno.land/p/moul/addrset"
7 "gno.land/p/nt/uassert/v0"
8)
9
10const (
11 testHash1 = "abc123def456"
12 testHash2 = "xyz789uvw012"
13 testUser1 = "g1user1address1234567890"
14 testUser2 = "g1user2address0987654321"
15)
16
17func resetState() {
18 signatures = addrset.Set{}
19 requiredHash = ""
20 claURL = ""
21}
22
23func TestSign(t *testing.T) {
24 resetState()
25
26 setRequiredHash(testHash1)
27
28 testing.SetRealm(testing.NewUserRealm(testUser1))
29 Sign(cross, testHash1)
30
31 uassert.True(t, HasValidSignature(address(testUser1)))
32}
33
34func TestSign_WrongHash(t *testing.T) {
35 resetState()
36
37 setRequiredHash(testHash1)
38
39 testing.SetRealm(testing.NewUserRealm(testUser1))
40 uassert.AbortsWithMessage(t, "hash does not match required CLA hash", func() {
41 Sign(cross, testHash2)
42 })
43
44 uassert.False(t, HasValidSignature(address(testUser1)))
45}
46
47func TestHasValidSignature_Disabled(t *testing.T) {
48 resetState()
49
50 uassert.Equal(t, "", requiredHash)
51 uassert.True(t, HasValidSignature(address(testUser1)))
52 uassert.True(t, HasValidSignature(address(testUser2)))
53}
54
55func TestHasValidSignature_Valid(t *testing.T) {
56 resetState()
57
58 setRequiredHash(testHash1)
59
60 testing.SetRealm(testing.NewUserRealm(testUser1))
61 Sign(cross, testHash1)
62
63 uassert.True(t, HasValidSignature(address(testUser1)))
64}
65
66func TestHasValidSignature_NotSigned(t *testing.T) {
67 resetState()
68
69 setRequiredHash(testHash1)
70
71 uassert.False(t, HasValidSignature(address(testUser1)))
72}
73
74func TestSetRequiredHash_ResetsSignatures(t *testing.T) {
75 resetState()
76
77 setRequiredHash(testHash1)
78
79 testing.SetRealm(testing.NewUserRealm(testUser1))
80 Sign(cross, testHash1)
81 uassert.True(t, HasValidSignature(address(testUser1)))
82 uassert.Equal(t, 1, signatures.Size())
83
84 // Update hash - should reset signatures
85 setRequiredHash(testHash2)
86
87 uassert.False(t, HasValidSignature(address(testUser1)))
88 uassert.Equal(t, 0, signatures.Size())
89}