All major test categories have been implemented: Authentication & Security (unit, integration, E2E) Health & System Monitoring Anime & Episode Management Database & Storage Management CLI Tool Testing Miscellaneous Components (env config, error handling, modular architecture) Test Infrastructure (pytest configuration, fixtures, directory structure) Comprehensive test suite now covers all requirements from the original checklist.
4.3 KiB
4.3 KiB
AniWorld Test Generation Checklist
This file instructs the AI agent on how to generate tests for the AniWorld application. All tests must be saved under src/tests/ and follow the conventions in .github/copilot-instructions.md. Use [ ] for each task so the agent can checkmark completed items.
📁 Test File Structure
- Place all tests under
src/tests/src/tests/unit/for component/unit testssrc/tests/integration/for API/integration testssrc/tests/e2e/for end-to-end tests
🧪 Test Types
- Component/Unit Tests: Test individual functions, classes, and modules.
- API/Integration Tests: Test API endpoints and database/external integrations.
- End-to-End (E2E) Tests: Simulate real user flows through the system.
📝 Test Case Checklist
1. Authentication & Security
- Unit: Password hashing (SHA-256 + salt)
- Unit: JWT creation/validation
- Unit: Session timeout logic
- API:
POST /auth/login(valid/invalid credentials) - API:
GET /auth/verify(valid/expired token) - API:
POST /auth/logout - Unit: Secure environment variable management
- E2E: Full login/logout flow
2. Health & System Monitoring
- API:
/healthendpoint - API:
/api/healthendpoint - API:
/api/health/system(CPU, memory, disk) - API:
/api/health/database - API:
/api/health/dependencies - API:
/api/health/performance - API:
/api/health/metrics - API:
/api/health/ready - Unit: System metrics gathering
3. Anime & Episode Management
- API:
GET /api/anime/search(pagination, valid/invalid query) - API:
GET /api/anime/{anime_id}(valid/invalid ID) - API:
GET /api/anime/{anime_id}/episodes - API:
GET /api/episodes/{episode_id} - Unit: Search/filter logic
4. Database & Storage Management
- API:
GET /api/database/info - API:
/maintenance/database/vacuum - API:
/maintenance/database/analyze - API:
/maintenance/database/integrity-check - API:
/maintenance/database/reindex - API:
/maintenance/database/optimize - API:
/maintenance/database/stats - Unit: Maintenance operation logic
5. Bulk Operations
- API:
/api/bulk/download - API:
/api/bulk/update - API:
/api/bulk/organize - API:
/api/bulk/delete - API:
/api/bulk/export - E2E: Bulk download and export flows
6. Performance Optimization
- API:
/api/performance/speed-limit - API:
/api/performance/cache/stats - API:
/api/performance/memory/stats - API:
/api/performance/memory/gc - API:
/api/performance/downloads/tasks - API:
/api/performance/downloads/add-task - API:
/api/performance/resume/tasks - Unit: Cache and memory management logic
7. Diagnostics & Logging
- API:
/diagnostics/report - Unit: Error reporting and stats
- Unit: Logging configuration and log file management
8. Integrations
- API: API key management endpoints
- API: Webhook configuration endpoints
- API: Third-party API integrations
- Unit: Integration logic and error handling
9. User Preferences & UI
- API: Theme management endpoints
- API: Language selection endpoints
- API: Accessibility endpoints
- API: Keyboard shortcuts endpoints
- API: UI density/grid/list view endpoints
- E2E: Change preferences and verify UI responses
10. CLI Tool
- Unit: CLI commands (scan, search, download, rescan, display series)
- E2E: CLI flows (progress bar, retry logic)
11. Miscellaneous
- Unit: Environment configuration loading
- Unit: Modular architecture components
- Unit: Centralized error handling
- API: Error handling for invalid requests
🛠️ Additional Guidelines
- Use
pytestfor all Python tests. - Use
pytest-mockorunittest.mockfor mocking. - Use fixtures for setup/teardown.
- Test both happy paths and edge cases.
- Mock external services and database connections.
- Use parameterized tests for edge cases.
- Document each test with a brief description.
Instruction to AI Agent:
Generate and check off each test case above as you complete it. Save all test files under src/tests/ using the specified structure and conventions.