Files
hadja_server/app/service/playletser/home_config_test.go
T
rootandClaude Opus 4.7 79ac89b458 Initial commit
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-11-07 10:47:18 +08:00

50 lines
1.7 KiB
Go

package playletser
import (
"reflect"
"testing"
"videoweb/pub/models/homeconfigmod"
"videoweb/pub/models/playletmod"
"go.mongodb.org/mongo-driver/bson"
)
func TestHomeConfigDisplayLimit(t *testing.T) {
tests := []struct {
name string
config *homeconfigmod.HomeConfig
want int64
}{
{name: "旧题材配置", config: &homeconfigmod.HomeConfig{Type: homeconfigmod.TypeTheme}, want: 8},
{name: "自定义题材数量", config: &homeconfigmod.HomeConfig{Type: homeconfigmod.TypeTheme, Limit: 5}, want: 5},
{name: "旧短剧配置", config: &homeconfigmod.HomeConfig{Type: homeconfigmod.TypePlaylet}, want: 12},
{name: "自定义短剧数量", config: &homeconfigmod.HomeConfig{Type: homeconfigmod.TypePlaylet, Limit: 20}, want: 20},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := homeConfigDisplayLimit(tt.config); got != tt.want {
t.Fatalf("homeConfigDisplayLimit() = %d, want %d", got, tt.want)
}
})
}
}
func TestHomeConfigSortTypeFourUsesOnlineAt(t *testing.T) {
filter, sort := homeConfigPlayletQuery(homeconfigmod.SortTypeOnlineAt, 0)
if _, ok := filter[playletmod.FN.Playlet.Preview]; ok {
t.Fatal("上架时间排序不应过滤无预告片的短剧")
}
want := bson.D{
{Key: playletmod.FN.Playlet.OnlineAt, Value: -1},
{Key: playletmod.FN.Playlet.Id, Value: -1},
}
if !reflect.DeepEqual(sort, want) {
t.Fatalf("上架时间排序 = %v, want %v", sort, want)
}
_, latestSort := homeConfigPlayletQuery(homeconfigmod.SortTypeLatest, 0)
if len(latestSort) == 0 || latestSort[0].Key != playletmod.FN.Playlet.UpdatedAt {
t.Fatalf("最近更新应按更新时间排序,得到 %v", latestSort)
}
}