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) } }