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