58 lines
1.8 KiB
Bash
Executable File
58 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
echo "=== Arcade Session API Test ==="
|
|
echo ""
|
|
|
|
# Get viewer ID
|
|
echo "1. Getting viewer ID..."
|
|
VIEWER_ID=$(curl -s http://localhost:3000/api/viewer | jq -r '.viewerId')
|
|
echo " Viewer ID: $VIEWER_ID"
|
|
echo ""
|
|
|
|
# Create user if doesn't exist
|
|
echo "2. Creating user in database..."
|
|
sqlite3 data/sqlite.db "INSERT OR IGNORE INTO users (id, guest_id, created_at) VALUES ('$VIEWER_ID', '$VIEWER_ID', datetime('now'));"
|
|
echo " User created/exists"
|
|
echo ""
|
|
|
|
# Create arcade session for matching
|
|
echo "3. Creating arcade session for matching game..."
|
|
curl -s -X POST http://localhost:3000/api/arcade-session \
|
|
-H 'Content-Type: application/json' \
|
|
-d "{
|
|
\"userId\": \"$VIEWER_ID\",
|
|
\"gameName\": \"matching\",
|
|
\"gameUrl\": \"/arcade/matching\",
|
|
\"initialState\": {
|
|
\"gamePhase\": \"playing\",
|
|
\"cards\": [],
|
|
\"gameCards\": [],
|
|
\"flippedCards\": [],
|
|
\"matchedPairs\": 0,
|
|
\"totalPairs\": 6
|
|
},
|
|
\"activePlayers\": [1]
|
|
}" | jq '.'
|
|
echo ""
|
|
|
|
# Get session
|
|
echo "4. Getting active session..."
|
|
curl -s "http://localhost:3000/api/arcade-session?userId=$VIEWER_ID" | jq '.'
|
|
echo ""
|
|
|
|
echo "=== What should happen now ==="
|
|
echo "1. Open http://localhost:3000/arcade/matching in your browser"
|
|
echo "2. The guard should NOT redirect (you're already on the active game)"
|
|
echo "3. Open http://localhost:3000/arcade/memory-quiz in a NEW TAB"
|
|
echo "4. The guard SHOULD redirect you back to /arcade/matching"
|
|
echo ""
|
|
|
|
echo "=== Current Issue ==="
|
|
echo "The guard is implemented but NOT integrated with the game."
|
|
echo "The game doesn't create sessions when it starts."
|
|
echo "You need to manually create the session (as shown above) to test the guard."
|
|
echo ""
|
|
|
|
echo "To clean up:"
|
|
echo " curl -X DELETE \"http://localhost:3000/api/arcade-session?userId=$VIEWER_ID\""
|