Files
MeBox/internal/model/model_test.go
T
2026-06-16 02:20:27 +08:00

41 lines
1.2 KiB
Go

package model
import (
"sync"
"testing"
"gorm.io/gorm/schema"
)
func TestMediaReferenceFieldsAllowVirtualEmbyIDs(t *testing.T) {
virtualIDLen := len("msgo-series-c003a8f345ea99aca9bb857591afd915")
cases := []struct {
name string
model any
fieldName string
}{
{name: "media_series_id", model: &Media{}, fieldName: "SeriesID"},
{name: "media_duplicate_of", model: &Media{}, fieldName: "DuplicateOf"},
{name: "playback_history_media_id", model: &PlaybackHistory{}, fieldName: "MediaID"},
{name: "favorite_media_id", model: &Favorite{}, fieldName: "MediaID"},
{name: "playlist_item_media_id", model: &PlaylistItem{}, fieldName: "MediaID"},
{name: "strm_record_media_id", model: &STRMRecord{}, fieldName: "MediaID"},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
parsed, err := schema.Parse(tc.model, &sync.Map{}, schema.NamingStrategy{})
if err != nil {
t.Fatal(err)
}
field := parsed.LookUpField(tc.fieldName)
if field == nil {
t.Fatalf("field %s not found", tc.fieldName)
}
if field.Size < virtualIDLen {
t.Fatalf("%s size = %d, want at least %d", tc.fieldName, field.Size, virtualIDLen)
}
})
}
}