50 lines
1.7 KiB
Go
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)
|
|
}
|
|
}
|