Aniworld/Test_TODO.md
2025-10-05 22:22:04 +02:00

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 tests
    • src/tests/integration/ for API/integration tests
    • src/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: /health endpoint
  • API: /api/health endpoint
  • 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 pytest for all Python tests.
  • Use pytest-mock or unittest.mock for 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.