test: add tests for browseURL helper

This commit is contained in:
2026-06-06 16:53:08 +02:00
parent b9ca82dbd9
commit 9cb3e8fe27

84
templates/funcs_test.go Normal file
View File

@@ -0,0 +1,84 @@
package templates
import "testing"
func TestBrowseURLPreservesAndOverridesParams(t *testing.T) {
t.Parallel()
got, err := browseURL(
browseURLParams{
Query: "full metal",
Type: "tv",
Status: "airing",
OrderBy: "score",
Sort: "desc",
Studio: 42,
SFW: true,
Genres: []int{1, 2},
Page: 3,
},
map[string]any{
"status": "",
"sort": "asc",
"page": 4,
},
)
if err != nil {
t.Fatalf("browseURL error: %v", err)
}
want := "/browse?genres=1&genres=2&order_by=score&page=4&q=full+metal&sfw=true&sort=asc&studio=42&type=tv"
if got != want {
t.Fatalf("unexpected url\nwant: %s\ngot: %s", want, got)
}
}
func TestBrowseURLClearsAndEncodesValues(t *testing.T) {
t.Parallel()
got, err := browseURL(
map[string]any{
"Query": "K-On! & friends",
"Studio": 99,
"SFW": false,
"Genres": []int{7, 9},
},
map[string]any{
"studio": "",
"genres": []int{5},
},
)
if err != nil {
t.Fatalf("browseURL error: %v", err)
}
want := "/browse?genres=5&q=K-On%21+%26+friends&sfw=false"
if got != want {
t.Fatalf("unexpected url\nwant: %s\ngot: %s", want, got)
}
}
func TestBrowseURLSupportsNamedMapTypes(t *testing.T) {
t.Parallel()
type namedMap map[string]any
got, err := browseURL(
namedMap{
"Query": "monster",
"Status": "airing",
"SFW": true,
},
map[string]any{
"status": "complete",
},
)
if err != nil {
t.Fatalf("browseURL error: %v", err)
}
want := "/browse?q=monster&sfw=true&status=complete"
if got != want {
t.Fatalf("unexpected url\nwant: %s\ngot: %s", want, got)
}
}