Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}