verifier_test.gno
1.43 Kb ยท 54 lines
1package names
2
3import (
4 "std"
5 "testing"
6
7 "gno.land/p/demo/ownable"
8 "gno.land/p/demo/testutils"
9 "gno.land/p/demo/uassert"
10 "gno.land/p/demo/urequire"
11
12 "gno.land/r/sys/users"
13)
14
15var alice = testutils.TestAddress("alice")
16
17func TestDefaultVerifier(t *testing.T) {
18 // Check disabled, any case is true
19 uassert.True(t, verifier(false, alice, alice.String()))
20 uassert.True(t, verifier(false, "", alice.String()))
21 uassert.True(t, verifier(false, alice, "somerandomusername"))
22
23 // Check enabled
24 // username + addr mismatch
25 uassert.False(t, verifier(true, alice, "notregistered"))
26 // PA namespace check
27 uassert.True(t, verifier(true, alice, alice.String()))
28
29 // Empty name/address
30 uassert.False(t, verifier(true, std.Address(""), ""))
31
32 // Register proper username
33 testing.SetRealm(std.NewCodeRealm("gno.land/r/gnoland/users/v1")) // authorized write
34 testing.SetOriginCaller(std.DerivePkgAddr("gno.land/r/gnoland/users/v1"))
35 urequire.NoError(t, users.RegisterUser("alice", alice))
36
37 // Proper namespace
38 uassert.True(t, verifier(true, alice, "alice"))
39}
40
41func TestEnable(t *testing.T) {
42 testing.SetRealm(std.NewUserRealm("g1manfred47kzduec920z88wfr64ylksmdcedlf5"))
43 testing.SetOriginCaller("g1manfred47kzduec920z88wfr64ylksmdcedlf5")
44
45 uassert.NotPanics(t, func() {
46 Enable()
47 })
48
49 // Confirm enable drops ownerships
50 uassert.Equal(t, Ownable.Owner().String(), "")
51 uassert.PanicsWithMessage(t, ownable.ErrUnauthorized.Error(), func() {
52 Enable()
53 })
54}