Search Apps Documentation Source Content File Folder Download Copy Actions Download

z_ui_thread_09_filetest.gno

1.81 Kb · 54 lines
 1// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_ui_thread_09_filetest
 2
 3// The flat "all comments" view (?flat=1) paginates ThreadMeta.AllReplies so
 4// every comment is reachable, unlike the recursive threaded view which
 5// truncates a large thread. Each flat page renders one <gno-foreign> block
 6// per comment, bounded by pageSizeFlat (50). With 60 comments the flat view
 7// spans 2 pages; the last comment is reachable via newest-first (desc page 1)
 8// and via page 2.
 9package z_ui_thread_09_filetest
10
11import (
12	"strings"
13	"testing"
14
15	"gno.land/p/gnoland/boards"
16	"gno.land/p/nt/ufmt/v0"
17
18	boards2 "gno.land/r/gnoland/boards2/v1"
19)
20
21const owner address = "g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh"
22
23var (
24	bid boards.ID
25	tid boards.ID
26)
27
28func init(cur realm) {
29	testing.SetRealm(testing.NewUserRealm(owner))
30	bid = boards2.CreateBoard(cross(cur), "test-board", false, false)
31	tid = boards2.CreateThread(cross(cur), bid, "Foo", "OP body")
32	// pageSizeFlat is 50, so 60 comments span 2 flat pages.
33	for i := 0; i < 60; i++ {
34		boards2.CreateReply(cross(cur), bid, tid, 0, ufmt.Sprintf("comment-%d", i))
35	}
36}
37
38func main(cur realm) {
39	p1 := boards2.Render("test-board/1?flat=1")              // oldest first, page 1
40	desc := boards2.Render("test-board/1?flat=1&order=desc") // newest first, page 1
41	p2 := boards2.Render("test-board/1?flat=1&page=2")       // oldest first, page 2
42
43	ok := strings.Contains(p1, "All 60 comments") &&
44		strings.Contains(p1, "page 1 of 2") &&
45		strings.Contains(p1, "comment-0") && // first comment is on page 1
46		!strings.Contains(p1, "comment-59") && // last comment is NOT on oldest-first page 1
47		strings.Contains(desc, "comment-59") && // last comment reachable newest-first
48		strings.Contains(p2, "comment-59") && // and on the last page
49		strings.Contains(p2, "page 2 of 2")
50	println(ok)
51}
52
53// Output:
54// true