| from unittest.mock import MagicMock |
|
|
| import pytest |
| from fastapi.testclient import TestClient |
|
|
| from src.server.api_routes.auth_api import get_auth_service |
| from src.server.auth.dependencies import get_current_user |
| from src.server.main import app |
| from src.server.services.auth_service import AuthService |
|
|
| |
| mock_service = MagicMock(spec=AuthService) |
|
|
| |
| app.dependency_overrides[get_auth_service] = lambda: mock_service |
| app.dependency_overrides[get_current_user] = lambda: {"id": "admin-id", "email": "admin@archon.com", "role": "admin"} |
|
|
| client = TestClient(app) |
|
|
|
|
| @pytest.fixture(autouse=True) |
| def reset_mock(): |
| mock_service.reset_mock() |
| |
| app.dependency_overrides[get_current_user] = lambda: { |
| "id": "admin-id", |
| "email": "admin@archon.com", |
| "role": "admin", |
| } |
|
|
|
|
| def test_admin_create_user_success(): |
| mock_service.create_user_by_admin.return_value = {"id": "123", "email": "test@example.com", "role": "member"} |
|
|
| payload = { |
| "name": "Test User", |
| "email": "test@example.com", |
| "password": "password123", |
| "role": "member", |
| "status": "active", |
| } |
|
|
| |
| response = client.post("/api/admin/users", json=payload) |
|
|
| assert response.status_code == 200 |
| assert response.json() == {"status": "ok"} |
| |
| |
|
|
|
|
| def test_admin_create_user_forbidden(): |
| |
| app.dependency_overrides[get_current_user] = lambda: {"id": "user-id", "email": "user@archon.com", "role": "member"} |
|
|
| payload = { |
| "name": "Test User", |
| "email": "test@example.com", |
| "password": "password123", |
| "role": "member", |
| "status": "active", |
| } |
|
|
| response = client.post("/api/admin/users", json=payload) |
|
|
| assert response.status_code == 403 |
|
|