Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

render_test.gno

1.71 Kb · 57 lines
 1package gns
 2
 3import (
 4	"strings"
 5	"testing"
 6)
 7
 8func TestRenderRoutes(cur realm, t *testing.T) {
 9	reset()
10	doRegister(cur, "alice", alice, 100000)
11	testing.SetRealm(testing.NewUserRealm(alice))
12	SetText(cross(cur), "alice", "com.github", "moul")
13
14	home := Render("")
15	isTrue(t, strings.Contains(home, "GNS"), "home mentions GNS")
16	isTrue(t, strings.Contains(home, "Registered names"), "home shows stats")
17
18	name := Render("name/alice")
19	isTrue(t, strings.Contains(name, "alice"), "name page has name")
20	isTrue(t, strings.Contains(name, alice.String()), "name page shows owner")
21	isTrue(t, strings.Contains(name, "com.github"), "name page shows records")
22
23	avail := Render("available/freeone")
24	isTrue(t, strings.Contains(avail, "Available"), "available page")
25
26	help := Render("help")
27	isTrue(t, strings.Contains(help, "Register"), "help lists API")
28
29	events := Render("events")
30	isTrue(t, strings.Contains(events, "events"), "events page")
31}
32
33func TestRenderNoMutation(cur realm, t *testing.T) {
34	reset()
35	doRegister(cur, "alice", alice, 100000)
36	before := names.Size()
37	_ = Render("name/alice")
38	_ = Render("")
39	_ = Render("available/whatever")
40	after := names.Size()
41	eqInt(t, int64(before), int64(after), "Render does not mutate state")
42}
43
44func TestEnumerationBounded(cur realm, t *testing.T) {
45	reset()
46	doRegister(cur, "one", alice, 100000)
47	doRegister(cur, "two", alice, 100000)
48	doRegister(cur, "three", alice, 100000)
49
50	page := NamesByOwner(alice.String(), "", 2)
51	eqInt(t, 2, int64(len(page.Items)), "page limited to 2")
52	isTrue(t, page.Next != "", "cursor for next page")
53
54	// invariant 15: hard cap even when a huge limit is requested.
55	page2 := NamesByOwner(alice.String(), "", 65535)
56	isTrue(t, len(page2.Items) <= 200, "hard cap applied")
57}