Fix critical bugs

This commit is contained in:
2026-02-20 14:30:45 +00:00
committed by Anibal Angulo
parent 29dc5ca851
commit 7844468204
7 changed files with 82 additions and 25 deletions

View File

@@ -17,6 +17,7 @@ from capa_de_integracion.services.storage.redis import RedisService
def mock_redis():
"""Create mock Redis service."""
redis = Mock(spec=RedisService)
redis.get_session = AsyncMock()
redis.save_session = AsyncMock()
return redis
@@ -67,6 +68,7 @@ async def test_validate_phone_whitespace(service):
async def test_start_session_new_user(service, mock_firestore, mock_redis, mock_content):
"""Test starting a quick reply session for a new user."""
# Setup mocks
mock_redis.get_session.return_value = None # No session in Redis
mock_firestore.get_session_by_phone.return_value = None # No existing session
# Mock create_session to return a session with the ID that was passed in
@@ -100,6 +102,7 @@ async def test_start_session_new_user(service, mock_firestore, mock_redis, mock_
assert result.session_id is not None # Session ID should be generated
assert result.quick_replies.header == "Home Screen"
mock_redis.get_session.assert_called_once_with("555-1234")
mock_firestore.get_session_by_phone.assert_called_once_with("555-1234")
mock_firestore.create_session.assert_called_once()
@@ -123,6 +126,7 @@ async def test_start_session_existing_user(service, mock_firestore, mock_redis,
telefono="555-1234",
pantalla_contexto="old_screen",
)
mock_redis.get_session.return_value = None # Not in Redis cache
mock_firestore.get_session_by_phone.return_value = test_session
test_quick_replies = QuickReplyScreen(
@@ -145,6 +149,7 @@ async def test_start_session_existing_user(service, mock_firestore, mock_redis,
assert result.session_id == test_session_id
assert result.quick_replies.header == "Payments Screen"
mock_redis.get_session.assert_called_once_with("555-1234")
mock_firestore.get_session_by_phone.assert_called_once_with("555-1234")
mock_firestore.update_pantalla_contexto.assert_called_once_with(
test_session_id,