test: add tests for browseURL helper
This commit is contained in:
84
templates/funcs_test.go
Normal file
84
templates/funcs_test.go
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user