// 後端冒煙測試:載入 index.js(自動監聽 3000)-> 測 REST 路由 -> 優雅關閉。 // 使用方式: node scripts/smoke_test_server.js (需在專案根目錄執行) const { app, io } = require("../server/index.js"); async function run() { let exitCode = 0; try { const listRes = await fetch("http://localhost:3000/api/rooms"); const listBody = await listRes.json(); console.log("[OK] GET /api/rooms ->", listRes.status, JSON.stringify(listBody)); const createRes = await fetch("http://localhost:3000/api/rooms", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ hostId: "test-host-1" }), }); const room = await createRes.json(); console.log("[OK] POST /api/rooms ->", createRes.status, "roomId=", room.id, "players=", room.players.length, "status=", room.status); } catch (e) { console.error("[FAIL]", e.message); exitCode = 1; } io.close(() => { console.log(exitCode === 0 ? "[OK] 後端可正常啟動與回應 REST API" : "[FAIL] 後端測試失敗"); process.exit(exitCode); }); // 保險:2 秒後強制退出,避免卡住 setTimeout(() => process.exit(exitCode), 2500); } setTimeout(run, 1500);