104 lines
3.0 KiB
Markdown
104 lines
3.0 KiB
Markdown
# 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
|