docs: add comprehensive testing documentation and framework setup for City Builder game

This commit is contained in:
2025-10-05 00:25:37 +00:00
parent 3093e38f0e
commit 2fb014fd40
20 changed files with 4514 additions and 5 deletions
+22 -5
View File
@@ -12,11 +12,22 @@ from server.game_state import GameState
from server.economy import EconomyEngine
from server.database import Database
# Global instances
game_state = GameState()
ws_manager = WebSocketManager(game_state)
economy_engine = EconomyEngine(game_state)
database = Database()
# Global instances - can be overridden for testing
game_state = None
ws_manager = None
economy_engine = None
database = None
def initialize_components(test_db_path=None):
"""Initialize server components with optional test database"""
global game_state, ws_manager, economy_engine, database
game_state = GameState()
ws_manager = WebSocketManager(game_state)
economy_engine = EconomyEngine(game_state)
database = Database(test_db_path) if test_db_path else Database()
return game_state, ws_manager, economy_engine, database
# --- HYBRID MODEL RE-IMPLEMENTED ---
last_economy_tick_time = time.time()
@@ -66,6 +77,12 @@ async def economy_loop():
@asynccontextmanager
async def lifespan(app: FastAPI):
"""Startup and shutdown events."""
global game_state, ws_manager, economy_engine, database
# Initialize components if not already done (for testing)
if not all([game_state, ws_manager, economy_engine, database]):
initialize_components()
logger.info("Server starting up...")
database.init_db()
game_state.load_state(database.load_game_state())