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}