feat: runtime manager

This commit is contained in:
Ilia Denisov
2026-04-28 20:39:18 +02:00
committed by GitHub
parent e0a99b346b
commit a7cee15115
289 changed files with 45660 additions and 2207 deletions
+18 -18
View File
@@ -8,9 +8,9 @@ import (
"testing"
"time"
"galaxy/lobby/internal/adapters/gamestub"
"galaxy/lobby/internal/adapters/invitestub"
"galaxy/lobby/internal/adapters/membershipstub"
"galaxy/lobby/internal/adapters/gameinmem"
"galaxy/lobby/internal/adapters/inviteinmem"
"galaxy/lobby/internal/adapters/membershipinmem"
"galaxy/lobby/internal/domain/common"
"galaxy/lobby/internal/domain/game"
"galaxy/lobby/internal/domain/invite"
@@ -27,17 +27,17 @@ func silentLogger() *slog.Logger {
}
type fixture struct {
games *gamestub.Store
memberships *membershipstub.Store
invites *invitestub.Store
games *gameinmem.Store
memberships *membershipinmem.Store
invites *inviteinmem.Store
svc *getgame.Service
}
func newFixture(t *testing.T) *fixture {
t.Helper()
games := gamestub.NewStore()
memberships := membershipstub.NewStore()
invites := invitestub.NewStore()
games := gameinmem.NewStore()
memberships := membershipinmem.NewStore()
invites := inviteinmem.NewStore()
svc, err := getgame.NewService(getgame.Dependencies{
Games: games,
Memberships: memberships,
@@ -55,7 +55,7 @@ func newFixture(t *testing.T) *fixture {
func seedGame(
t *testing.T,
store *gamestub.Store,
store *gameinmem.Store,
id common.GameID,
gameType game.GameType,
ownerUserID string,
@@ -88,7 +88,7 @@ func seedGame(
func seedMembership(
t *testing.T,
store *membershipstub.Store,
store *membershipinmem.Store,
gameID common.GameID,
userID string,
status membership.Status,
@@ -121,7 +121,7 @@ func seedMembership(
func seedInvite(
t *testing.T,
store *invitestub.Store,
store *inviteinmem.Store,
gameID common.GameID,
inviterID, inviteeID string,
status invite.Status,
@@ -364,9 +364,9 @@ func TestNewServiceRejectsMissingDeps(t *testing.T) {
name string
deps getgame.Dependencies
}{
{"nil games", getgame.Dependencies{Memberships: membershipstub.NewStore(), Invites: invitestub.NewStore()}},
{"nil memberships", getgame.Dependencies{Games: gamestub.NewStore(), Invites: invitestub.NewStore()}},
{"nil invites", getgame.Dependencies{Games: gamestub.NewStore(), Memberships: membershipstub.NewStore()}},
{"nil games", getgame.Dependencies{Memberships: membershipinmem.NewStore(), Invites: inviteinmem.NewStore()}},
{"nil memberships", getgame.Dependencies{Games: gameinmem.NewStore(), Invites: inviteinmem.NewStore()}},
{"nil invites", getgame.Dependencies{Games: gameinmem.NewStore(), Memberships: membershipinmem.NewStore()}},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
@@ -380,12 +380,12 @@ func TestNewServiceRejectsMissingDeps(t *testing.T) {
func TestHandleSurfacesStoreError(t *testing.T) {
// Sanity check that errors from the membership store bubble up wrapped.
t.Parallel()
games := gamestub.NewStore()
games := gameinmem.NewStore()
memberships := &erroringMemberships{err: errors.New("stub failure")}
svc, err := getgame.NewService(getgame.Dependencies{
Games: games,
Memberships: memberships,
Invites: invitestub.NewStore(),
Invites: inviteinmem.NewStore(),
Logger: silentLogger(),
})
require.NoError(t, err)
@@ -401,7 +401,7 @@ func TestHandleSurfacesStoreError(t *testing.T) {
}
type erroringMemberships struct {
membershipstub.Store
membershipinmem.Store
err error
}