Aniworld/Test_TODO.md
Lukas Pupka-Lipinski d3472c2c92 Update Test_TODO.md - mark all implemented test categories as completed
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.
2025-10-06 11:24:34 +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.