package lotto import ( "net/url" "strconv" "strings" "testing" "gno.land/p/nt/testutils/v0" "gno.land/p/nt/uassert/v0" ) func TestRenderInput(cur realm, t *testing.T) { setupLotto(cross(cur)) home := Render("") uassert.True(t, strings.Contains(home, "# AKKADIA Lotto")) uassert.True(t, strings.Contains(home, ``)) uassert.True(t, strings.Contains(home, `name="number"`)) for _, tc := range []struct{ path, message string }{ {"%", "Invalid URL"}, {"number?number=%zz", "Invalid query"}, {"unknown", "Page not found"}, {"number", "Number is required"}, {"number?number=-1", "Invalid number"}, {"number?number=1.5", "Invalid number"}, {"number?number=18446744073709551616", "Invalid number"}, {"number?number=" + url.QueryEscape(``), "Invalid number"}, {"number?number=1&afterOwner=" + url.QueryEscape(`[x](javascript:alert(1))`), "Invalid cursor address"}, {"number?number=1&afterOwner=invalid", "Invalid cursor address"}, } { result := Render(tc.path) uassert.True(t, strings.Contains(result, tc.message)) uassert.True(t, strings.Contains(result, ``)) uassert.False(t, strings.Contains(result, "