mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-29 03:26:37 +08:00
51 lines
1.6 KiB
Go
51 lines
1.6 KiB
Go
package service
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/glebarez/sqlite"
|
|
"go.uber.org/zap"
|
|
"gorm.io/gorm"
|
|
|
|
"github.com/ShukeBta/MediaStationGo/internal/model"
|
|
"github.com/ShukeBta/MediaStationGo/internal/repository"
|
|
)
|
|
|
|
func TestStatsComputeFiltersDisabledLibraries(t *testing.T) {
|
|
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := db.AutoMigrate(&model.Library{}, &model.Media{}, &model.User{}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
repos := repository.New(db)
|
|
enabled := &model.Library{Name: "电影", Path: "/media/movies", Type: "movie", Enabled: true}
|
|
disabled := &model.Library{Name: "停用库", Path: "/media/disabled", Type: "movie", Enabled: false}
|
|
if err := repos.Library.Create(t.Context(), enabled); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := repos.Library.Create(t.Context(), disabled); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := db.Model(&model.Library{}).Where("id = ?", disabled.ID).Update("enabled", false).Error; err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
for _, media := range []*model.Media{
|
|
{LibraryID: enabled.ID, Title: "Visible", Path: "/media/movies/a.mkv", SizeBytes: 100},
|
|
{LibraryID: disabled.ID, Title: "Hidden", Path: "/media/disabled/b.mkv", SizeBytes: 900},
|
|
} {
|
|
if err := repos.Media.Upsert(t.Context(), media); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
snap, err := NewStatsService(zap.NewNop(), repos).Compute(t.Context(), t.TempDir())
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if snap.Libraries != 1 || snap.MediaCount != 1 || snap.TotalSizeBytes != 100 {
|
|
t.Fatalf("stats = libraries=%d media=%d size=%d, want 1/1/100", snap.Libraries, snap.MediaCount, snap.TotalSizeBytes)
|
|
}
|
|
}
|