Search Apps Documentation Source Content File Folder Download Copy Actions Download

authorizable_test.gno

2.16 Kb · 95 lines
 1package authorizable
 2
 3import (
 4	"testing"
 5
 6	"gno.land/p/nt/ownable/v0"
 7	"gno.land/p/nt/testutils/v0"
 8	"gno.land/p/nt/uassert/v0"
 9)
10
11var (
12	alice   = testutils.TestAddress("alice")
13	bob     = testutils.TestAddress("bob")
14	charlie = testutils.TestAddress("charlie")
15)
16
17func TestNew(t *testing.T) {
18	testing.SetRealm(testing.NewUserRealm(alice))
19
20	a := New(ownable.NewWithAddress(alice))
21	got := a.Owner()
22
23	if alice != got {
24		t.Fatalf("Expected %s, got: %s", alice, got)
25	}
26}
27
28func TestOnAuthList(t *testing.T) {
29	a := New(ownable.NewWithAddress(alice))
30	testing.SetRealm(testing.NewUserRealm(alice))
31
32	if err := a.OnAuthList(); err == ErrNotInAuthList {
33		t.Fatalf("expected alice to be on the list")
34	}
35}
36
37func TestNotOnAuthList(t *testing.T) {
38	a := New(ownable.NewWithAddress(alice))
39	testing.SetRealm(testing.NewUserRealm(bob))
40
41	if err := a.OnAuthList(); err == nil {
42		t.Fatalf("expected bob to not be on the list")
43	}
44}
45
46func TestAddToAuthList(t *testing.T) {
47	a := New(ownable.NewWithAddress(alice))
48	testing.SetRealm(testing.NewUserRealm(alice))
49
50	if err := a.AddToAuthList(bob); err != nil {
51		t.Fatalf("Expected no error, got %v", err)
52	}
53
54	testing.SetRealm(testing.NewUserRealm(bob))
55
56	if err := a.AddToAuthList(bob); err == nil {
57		t.Fatalf("Expected AddToAuth to error while bob called it, but it didn't")
58	}
59}
60
61func TestDeleteFromList(t *testing.T) {
62	a := New(ownable.NewWithAddress(alice))
63	testing.SetRealm(testing.NewUserRealm(alice))
64
65	if err := a.AddToAuthList(bob); err != nil {
66		t.Fatalf("Expected no error, got %v", err)
67	}
68
69	if err := a.AddToAuthList(charlie); err != nil {
70		t.Fatalf("Expected no error, got %v", err)
71	}
72
73	testing.SetRealm(testing.NewUserRealm(bob))
74
75	// Try an unauthorized deletion
76	if err := a.DeleteFromAuthList(alice); err == nil {
77		t.Fatalf("Expected DelFromAuth to error with %v", err)
78	}
79
80	testing.SetRealm(testing.NewUserRealm(alice))
81
82	if err := a.DeleteFromAuthList(charlie); err != nil {
83		t.Fatalf("Expected no error, got %v", err)
84	}
85}
86
87func TestAssertOnList(t *testing.T) {
88	a := New(ownable.NewWithAddress(alice))
89
90	testing.SetRealm(testing.NewUserRealm(bob))
91
92	uassert.PanicsWithMessage(t, ErrNotInAuthList.Error(), func() {
93		a.AssertOnAuthList()
94	})
95}