render_example_test.gno
1.51 Kb · 42 lines
1package blog
2
3import "testing"
4
5// ExampleRender pins the index. It seeds state directly (rather than through
6// Set) so the example takes no `cur realm`, and it resets first because an
7// example runs after every Test in the package and would otherwise render what
8// they left behind.
9func ExampleRender() {
10 reset()
11 seed("mygnoscan", "Sharing mygnoscan", "2026-09-23", "mygnoscan,tooling", "An unfinished BI tool for gno.land.")
12 seed("hello", "Hello", "2026-09-01", "meta", "Starting a blog on chain.")
13 print(Render(""))
14 // Output:
15 // # moul's blog
16 //
17 // Notes on gno.land, from the person building on it.
18 //
19 // ## [Sharing mygnoscan](/r/nym-moultest123/blog:mygnoscan)
20 //
21 // 2026-09-23 · [#mygnoscan](/r/nym-moultest123/blog:t/mygnoscan) · [#tooling](/r/nym-moultest123/blog:t/tooling)
22 //
23 // An unfinished BI tool for gno\.land\.
24 //
25 // ## [Hello](/r/nym-moultest123/blog:hello)
26 //
27 // 2026-09-01 · [#meta](/r/nym-moultest123/blog:t/meta)
28 //
29 // Starting a blog on chain\.
30}
31
32// TestNoticeBlocksAreTransparentByDefault pins the property that made it safe
33// to wrap every view in them: with nothing set on r/moul/config, Render is
34// byte-for-byte the inner render. If that ever stops holding, every page of
35// this blog gains stray whitespace at the top and the bottom.
36func TestNoticeBlocksAreTransparentByDefault(t *testing.T) {
37 for _, path := range []string{"", "t/gno", "no-such-post"} {
38 if Render(path) != render(path) {
39 t.Fatalf("Render(%q) differs from the inner render with no notice configured", path)
40 }
41 }
42}