package playermapping import ( "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func validMapping() PlayerMapping { return PlayerMapping{ GameID: "game-1", UserID: "user-1", RaceName: "Aelinari", EnginePlayerUUID: "00000000-0000-0000-0000-000000000001", CreatedAt: time.Date(2026, 4, 27, 12, 0, 0, 0, time.UTC), } } func TestPlayerMappingValidateHappy(t *testing.T) { require.NoError(t, validMapping().Validate()) } func TestPlayerMappingValidateRejects(t *testing.T) { tests := []struct { name string mutate func(*PlayerMapping) }{ {"empty game id", func(m *PlayerMapping) { m.GameID = "" }}, {"empty user id", func(m *PlayerMapping) { m.UserID = "" }}, {"empty race name", func(m *PlayerMapping) { m.RaceName = "" }}, {"empty engine uuid", func(m *PlayerMapping) { m.EnginePlayerUUID = "" }}, {"zero created at", func(m *PlayerMapping) { m.CreatedAt = time.Time{} }}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { mapping := validMapping() tt.mutate(&mapping) assert.Error(t, mapping.Validate()) }) } }