Fix critical bugs
This commit is contained in:
@@ -519,14 +519,25 @@ class TestStandardConversation:
|
||||
sample_request: ConversationRequest,
|
||||
sample_session: ConversationSession,
|
||||
) -> None:
|
||||
"""Test standard conversation loads history."""
|
||||
"""Test standard conversation loads history for old sessions."""
|
||||
# Make session older than 30 minutes to trigger history loading
|
||||
old_session = ConversationSession(
|
||||
session_id=sample_session.session_id,
|
||||
user_id=sample_session.user_id,
|
||||
telefono=sample_session.telefono,
|
||||
created_at=datetime.now(UTC) - timedelta(minutes=45),
|
||||
last_modified=sample_session.last_modified,
|
||||
last_message=sample_session.last_message,
|
||||
pantalla_contexto=sample_session.pantalla_contexto,
|
||||
)
|
||||
|
||||
await conversation_service._handle_standard_conversation(
|
||||
request=sample_request,
|
||||
session=sample_session,
|
||||
session=old_session,
|
||||
)
|
||||
|
||||
mock_firestore.get_entries.assert_awaited_once_with(
|
||||
sample_session.session_id,
|
||||
old_session.session_id,
|
||||
limit=60,
|
||||
)
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user