41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package system
|
|
|
|
import (
|
|
"context"
|
|
"kra/internal/biz/system"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestMediaEditsKeepUnchangedCategoryNameAndMapMissingFile(t *testing.T) {
|
|
db, err := openWithDriver("sqlite", filepath.Join(t.TempDir(), "media.db"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
pool, _ := db.DB()
|
|
t.Cleanup(func() { _ = pool.Close() })
|
|
if err := db.AutoMigrate(&mediaPO{}, &categoryPO{}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
r := NewMediaRepo(&Data{gormDB: newReloadableDB(db, nil)})
|
|
ctx := context.Background()
|
|
category := &system.AttachmentCategory{Name: "screenshots"}
|
|
if err := r.SaveCategory(ctx, category); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var row categoryPO
|
|
if err := db.First(&row).Error; err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
category.ID = row.ID
|
|
if err := r.SaveCategory(ctx, category); err != nil {
|
|
t.Fatalf("unchanged category rejected: %v", err)
|
|
}
|
|
if err := r.SaveCategory(ctx, &system.AttachmentCategory{Name: "screenshots"}); err == nil {
|
|
t.Fatal("duplicate category accepted")
|
|
}
|
|
if err := r.UpdateMediaName(ctx, 999, "missing"); err != system.ErrMediaNotFound {
|
|
t.Fatalf("missing file: %v", err)
|
|
}
|
|
}
|