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
@@ -8,7 +8,7 @@ import (
"testing"
"time"
"galaxy/lobby/internal/adapters/gamestub"
"galaxy/lobby/internal/adapters/gameinmem"
"galaxy/lobby/internal/adapters/idgen"
"galaxy/lobby/internal/domain/common"
"galaxy/lobby/internal/domain/game"
@@ -88,11 +88,11 @@ func TestNewServiceRequiresStoreAndIDs(t *testing.T) {
_, err := creategame.NewService(creategame.Dependencies{})
require.Error(t, err)
_, err = creategame.NewService(creategame.Dependencies{Games: gamestub.NewStore()})
_, err = creategame.NewService(creategame.Dependencies{Games: gameinmem.NewStore()})
require.Error(t, err)
_, err = creategame.NewService(creategame.Dependencies{
Games: gamestub.NewStore(),
Games: gameinmem.NewStore(),
IDs: &stubIDGenerator{next: "game-ok"},
})
require.NoError(t, err)
@@ -102,7 +102,7 @@ func TestHandleAdminCreatesPublicGame(t *testing.T) {
t.Parallel()
now := time.Date(2026, 4, 24, 10, 0, 0, 0, time.UTC)
store := gamestub.NewStore()
store := gameinmem.NewStore()
service, err := creategame.NewService(creategame.Dependencies{
Games: store,
IDs: &stubIDGenerator{next: "game-alpha"},
@@ -129,7 +129,7 @@ func TestHandleUserCreatesPrivateGame(t *testing.T) {
t.Parallel()
now := time.Date(2026, 4, 24, 11, 0, 0, 0, time.UTC)
store := gamestub.NewStore()
store := gameinmem.NewStore()
service, err := creategame.NewService(creategame.Dependencies{
Games: store,
IDs: &stubIDGenerator{next: "game-beta"},
@@ -150,7 +150,7 @@ func TestHandleAdminForbiddenForPrivateGame(t *testing.T) {
now := time.Date(2026, 4, 24, 10, 0, 0, 0, time.UTC)
service, err := creategame.NewService(creategame.Dependencies{
Games: gamestub.NewStore(),
Games: gameinmem.NewStore(),
IDs: &stubIDGenerator{next: "game-x"},
Clock: newFixedClock(now),
Logger: silentLogger(),
@@ -169,7 +169,7 @@ func TestHandleUserForbiddenForPublicGame(t *testing.T) {
now := time.Date(2026, 4, 24, 10, 0, 0, 0, time.UTC)
service, err := creategame.NewService(creategame.Dependencies{
Games: gamestub.NewStore(),
Games: gameinmem.NewStore(),
IDs: &stubIDGenerator{next: "game-x"},
Clock: newFixedClock(now),
Logger: silentLogger(),
@@ -188,7 +188,7 @@ func TestHandleInvalidActorReturnsError(t *testing.T) {
now := time.Date(2026, 4, 24, 10, 0, 0, 0, time.UTC)
service, err := creategame.NewService(creategame.Dependencies{
Games: gamestub.NewStore(),
Games: gameinmem.NewStore(),
IDs: &stubIDGenerator{next: "game-x"},
Clock: newFixedClock(now),
Logger: silentLogger(),
@@ -208,7 +208,7 @@ func TestHandleDomainValidationFailurePropagates(t *testing.T) {
now := time.Date(2026, 4, 24, 10, 0, 0, 0, time.UTC)
service, err := creategame.NewService(creategame.Dependencies{
Games: gamestub.NewStore(),
Games: gameinmem.NewStore(),
IDs: &stubIDGenerator{next: "game-bad-cron"},
Clock: newFixedClock(now),
Logger: silentLogger(),
@@ -228,7 +228,7 @@ func TestHandleEnrollmentDeadlineInPastFails(t *testing.T) {
now := time.Date(2026, 4, 24, 10, 0, 0, 0, time.UTC)
service, err := creategame.NewService(creategame.Dependencies{
Games: gamestub.NewStore(),
Games: gameinmem.NewStore(),
IDs: &stubIDGenerator{next: "game-past"},
Clock: newFixedClock(now),
Logger: silentLogger(),
@@ -249,7 +249,7 @@ func TestHandleIDGeneratorErrorPropagates(t *testing.T) {
now := time.Date(2026, 4, 24, 10, 0, 0, 0, time.UTC)
boom := errors.New("entropy exhausted")
service, err := creategame.NewService(creategame.Dependencies{
Games: gamestub.NewStore(),
Games: gameinmem.NewStore(),
IDs: &stubIDGenerator{err: boom},
Clock: newFixedClock(now),
Logger: silentLogger(),
@@ -309,7 +309,7 @@ func TestHandleUsesRealIDGeneratorShape(t *testing.T) {
t.Parallel()
now := time.Date(2026, 4, 24, 12, 0, 0, 0, time.UTC)
store := gamestub.NewStore()
store := gameinmem.NewStore()
service, err := creategame.NewService(creategame.Dependencies{
Games: store,
IDs: idgen.NewGenerator(),