# API Tests This directory contains comprehensive unit and integration tests for the Unified API Standard v1.0. ## Test Structure ### Unit Tests - `test_response.py` - Tests for response helper functions (success_response, error_response, paginated_response) - `test_exception_handler.py` - Tests for custom exception handler - `test_permissions.py` - Tests for permission classes - `test_throttles.py` - Tests for rate limiting ### Integration Tests - `test_integration_base.py` - Base class with common fixtures - `test_integration_planner.py` - Planner module endpoint tests - `test_integration_writer.py` - Writer module endpoint tests - `test_integration_system.py` - System module endpoint tests - `test_integration_billing.py` - Billing module endpoint tests - `test_integration_auth.py` - Auth module endpoint tests - `test_integration_errors.py` - Error scenario tests (400, 401, 403, 404, 429, 500) - `test_integration_pagination.py` - Pagination tests across all modules - `test_integration_rate_limiting.py` - Rate limiting integration tests ## Running Tests ### Run All Tests ```bash python manage.py test igny8_core.api.tests --verbosity=2 ``` ### Run Specific Test File ```bash python manage.py test igny8_core.api.tests.test_response python manage.py test igny8_core.api.tests.test_integration_planner ``` ### Run Specific Test Class ```bash python manage.py test igny8_core.api.tests.test_response.ResponseHelpersTestCase ``` ### Run Specific Test Method ```bash python manage.py test igny8_core.api.tests.test_response.ResponseHelpersTestCase.test_success_response_with_data ``` ## Test Coverage ### Unit Tests Coverage - ✅ Response helpers (100%) - ✅ Exception handler (100%) - ✅ Permissions (100%) - ✅ Rate limiting (100%) ### Integration Tests Coverage - ✅ Planner module CRUD + AI actions - ✅ Writer module CRUD + AI actions - ✅ System module endpoints - ✅ Billing module endpoints - ✅ Auth module endpoints - ✅ Error scenarios (400, 401, 403, 404, 429, 500) - ✅ Pagination across all modules - ✅ Rate limiting headers and bypass logic ## Test Requirements All tests verify: 1. **Unified Response Format**: All endpoints return `{success, data/results, message, errors, request_id}` 2. **Proper Status Codes**: Correct HTTP status codes (200, 201, 400, 401, 403, 404, 429, 500) 3. **Error Format**: Error responses include `error`, `errors`, and `request_id` 4. **Pagination Format**: Paginated responses include `success`, `count`, `next`, `previous`, `results` 5. **Request ID**: All responses include `request_id` for tracking