feat: gamemaster
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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())
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user