mirror of
https://github.com/coleam00/Archon.git
synced 2025-12-30 21:49:30 -05:00
The New Archon (Beta) - The Operating System for AI Coding Assistants!
This commit is contained in:
58
python/tests/test_settings_api.py
Normal file
58
python/tests/test_settings_api.py
Normal file
@@ -0,0 +1,58 @@
|
||||
"""
|
||||
Simple tests for settings API credential handling.
|
||||
Focus on critical paths for optional settings with defaults.
|
||||
"""
|
||||
|
||||
from unittest.mock import AsyncMock, MagicMock, patch
|
||||
|
||||
|
||||
def test_optional_setting_returns_default(client, mock_supabase_client):
|
||||
"""Test that optional settings return default values with is_default flag."""
|
||||
# Mock the entire credential_service instance
|
||||
mock_service = MagicMock()
|
||||
mock_service.get_credential = AsyncMock(return_value=None)
|
||||
|
||||
with patch("src.server.api_routes.settings_api.credential_service", mock_service):
|
||||
response = client.get("/api/credentials/DISCONNECT_SCREEN_ENABLED")
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["key"] == "DISCONNECT_SCREEN_ENABLED"
|
||||
assert data["value"] == "true"
|
||||
assert data["is_default"] is True
|
||||
assert "category" in data
|
||||
assert "description" in data
|
||||
|
||||
|
||||
def test_unknown_credential_returns_404(client, mock_supabase_client):
|
||||
"""Test that unknown credentials still return 404."""
|
||||
# Mock the entire credential_service instance
|
||||
mock_service = MagicMock()
|
||||
mock_service.get_credential = AsyncMock(return_value=None)
|
||||
|
||||
with patch("src.server.api_routes.settings_api.credential_service", mock_service):
|
||||
response = client.get("/api/credentials/UNKNOWN_KEY_THAT_DOES_NOT_EXIST")
|
||||
|
||||
assert response.status_code == 404
|
||||
data = response.json()
|
||||
assert "error" in data["detail"]
|
||||
assert "not found" in data["detail"]["error"].lower()
|
||||
|
||||
|
||||
def test_existing_credential_returns_normally(client, mock_supabase_client):
|
||||
"""Test that existing credentials return without default flag."""
|
||||
mock_value = "user_configured_value"
|
||||
# Mock the entire credential_service instance
|
||||
mock_service = MagicMock()
|
||||
mock_service.get_credential = AsyncMock(return_value=mock_value)
|
||||
|
||||
with patch("src.server.api_routes.settings_api.credential_service", mock_service):
|
||||
response = client.get("/api/credentials/SOME_EXISTING_KEY")
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["key"] == "SOME_EXISTING_KEY"
|
||||
assert data["value"] == "user_configured_value"
|
||||
assert data["is_encrypted"] is False
|
||||
# Should not have is_default flag for real credentials
|
||||
assert "is_default" not in data
|
||||
Reference in New Issue
Block a user