Files
silo-server/internal/jellycompat/query_test.go
T

57 lines
1.5 KiB
Go

package jellycompat
import (
"net/http/httptest"
"testing"
)
func TestFavoriteItemsNeedBrowseFilters(t *testing.T) {
if favoriteItemsNeedBrowseFilters(itemsQuery{}) {
t.Fatal("plain favorite query should keep the lightweight favorites path")
}
query := itemsQuery{parentLibraryID: 42}
if !favoriteItemsNeedBrowseFilters(query) {
t.Fatal("favorite query with a parent library should use catalog browse filters")
}
}
func TestParseItemsQueryAcceptsIsFavoriteParam(t *testing.T) {
req := httptest.NewRequest("GET", "/Users/user/Items?isFavorite=true&IncludeItemTypes=Series", nil)
query := parseItemsQuery(req, NewResourceIDCodec())
if !query.isFavorite {
t.Fatal("expected isFavorite=true to enable favorite filtering")
}
if len(query.itemTypes) != 1 || query.itemTypes[0] != "series" {
t.Fatalf("got item types %v, want [series]", query.itemTypes)
}
}
func TestMapSortByReleaseDate(t *testing.T) {
tests := []string{
"PremiereDate",
"PremiereDate,SortName,ProductionYear",
"Premiered",
}
for _, raw := range tests {
if got := mapSortBy(raw); got != "release_date" {
t.Fatalf("mapSortBy(%q) = %q, want release_date", raw, got)
}
}
}
func TestParseContentIDParam(t *testing.T) {
got := parseContentIDParam(" movie-1, movie-2, movie-1 ,, ")
want := []string{"movie-1", "movie-2"}
if len(got) != len(want) {
t.Fatalf("got %v, want %v", got, want)
}
for i := range want {
if got[i] != want[i] {
t.Fatalf("got %v, want %v", got, want)
}
}
}