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

2.42 Kb · 57 lines
 1package craft
 2
 3import (
 4	"strings"
 5	"testing"
 6
 7	"gno.land/p/nt/uassert/v0"
 8)
 9
10func TestRenderRecipeLookup(cur realm, t *testing.T) {
11	setupCraftTest(cross(cur), t)
12	testing.SetOriginCaller(craftTest.Admin)
13	testing.SetRealm(testing.NewUserRealm(craftTest.Admin))
14	SetRecipe(cross(cur), "0001|craft-render-item:01", 1200)
15
16	output := Render("recipe?recipe=0001%7Ccraft-render-item%3A1")
17	uassert.True(t, strings.Contains(output, "Item ID**: 1200"), "should render the mapped item ID")
18	uassert.True(t, strings.Contains(output, "`0001|0:craft-render-item:1`"), "should render the canonical recipe as a code span")
19	uassert.False(t, strings.Contains(output, `\|`), "recipe code span should keep pipes literal")
20}
21
22func TestRenderRecipeErrors(cur realm, t *testing.T) {
23	setupCraftTest(cross(cur), t)
24
25	empty := Render("recipe")
26	uassert.True(t, strings.Contains(empty, "Recipe is required"), "should require a recipe")
27
28	invalid := Render("recipe?recipe=bad")
29	uassert.True(t, strings.Contains(invalid, "Invalid recipe"), "should reject an invalid recipe")
30
31	missing := Render("recipe?recipe=0001%7Ccraft-missing-item%3A1")
32	uassert.True(t, strings.Contains(missing, "Recipe not found"), "should report a missing recipe")
33
34	unknown := Render("unknown")
35	uassert.True(t, strings.Contains(unknown, "Not found"), "should reject an unknown route")
36}
37
38func TestRenderRecipeHomeAndList(cur realm, t *testing.T) {
39	setupCraftTest(cross(cur), t)
40	home := Render("")
41	uassert.True(t, strings.Contains(home, `<gno-form path="recipe">`), "should render the recipe lookup form")
42	uassert.True(t, strings.Contains(home, `name="recipe"`), "should render the recipe input")
43	uassert.True(t, strings.Contains(home, `./craft:recipes`), "should link to the recipe list")
44	uassert.True(t, strings.Contains(home, "1000000ugnot"), "should render the default craft fee")
45
46	emptyList := Render("recipes")
47	uassert.True(t, strings.Contains(emptyList, "No recipes stored yet"), "should render an empty list")
48
49	testing.SetOriginCaller(craftTest.Admin)
50	testing.SetRealm(testing.NewUserRealm(craftTest.Admin))
51	SetRecipe(cross(cur), "0001|craft-list-render:1", 1300)
52
53	listed := Render("recipes")
54	uassert.True(t, strings.Contains(listed, "1300"), "should render stored item IDs")
55	uassert.True(t, strings.Contains(listed, "`0001|0:craft-list-render:1`"), "should render listed recipes as a code span")
56	uassert.False(t, strings.Contains(listed, `\|`), "listed recipe code span should keep pipes literal")
57}