# Backend System Test Prompt

## Project Context
You are working on the **mtgonline** backend project located at `/home/wall-o/projects/mtgonline/backend/`.

The backend is a FastAPI application with:
- PostgreSQL database (MTG Online + MTG data)
- Redis caching
- JWT authentication
- MTG card search and statistics endpoints

## Current State
Read the `state.json` file at `/home/wall-o/projects/mtgonline/backend/state.json` to understand:
- What has been completed
- What the current focus is
- Any blockers or pending tasks

## Task: Full Backend System Test

Your goal is to perform a comprehensive system test of the backend to verify all components work correctly together.

### Steps to Follow:

1. **Read State File**
   - Read `/home/wall-o/projects/mtgonline/backend/state.json`
   - Understand current progress and what's been tested

2. **Check Docker Containers**
   - Run: `cd /home/wall-o/projects/mtgonline && docker compose ps`
   - If containers aren't running, start them: `docker compose up -d`
   - Wait for services to be healthy (~40 seconds)

3. **Run System Test**
   - Execute: `cd /home/wall-o/projects/mtgonline/backend && python test_system.py`
   - This tests:
     - Database connections (PostgreSQL + Redis)
     - Cache operations
     - Database tables
     - API endpoints (health, card search, statistics, auth)

4. **Analyze Results**
   - If tests fail, investigate and fix issues
   - Common issues:
     - Database not running
     - Redis connection failed
     - API routes not registered
     - Environment variables not set

5. **Update State**
   - Update `state.json` with test results
   - Note any bugs found and fixed
   - Document what's working and what needs attention

6. **Report Findings**
   - Summarize test results (pass/fail rates)
   - List any issues found
   - Recommend next steps

## Expected Test Coverage

The system test (`test_system.py`) should verify:
- ✅ MTG Online PostgreSQL connection
- ✅ MTG PostgreSQL connection  
- ✅ Redis connection and operations
- ✅ MTG Online database tables (users, decks)
- ✅ MTG database tables (sets, cards)
- ✅ MTG card search functionality
- ✅ Health endpoint
- ✅ Card search API endpoint
- ✅ Statistics API endpoint
- ✅ Authentication endpoint

## Success Criteria

All tests should pass (100% success rate) before considering the backend ready for frontend development.

## Commands Reference

```bash
# Check Docker status
cd /home/wall-o/projects/mtgonline && docker compose ps

# Start containers
cd /home/wall-o/projects/mtgonline && docker compose up -d

# Wait for health (40 seconds)
sleep 40

# Run system test
cd /home/wall-o/projects/mtgonline/backend && python test_system.py

# Check logs if issues
cd /home/wall-o/projects/mtgonline && docker compose logs backend
```

## Important Notes

- All code execution must be as user `wall-o` (not root)
- Use sudo -u wall-o when running commands
- Pin versions in requirements.txt
- Follow PEP 8 for Python code
- Log errors with context
- One change per commit, descriptive messages
