import pytest from unittest.mock import MagicMock, patch from recommendations.engine import RecommendationEngine @patch("google.genai.Client") def test_chat_with_data_success(mock_genai_client): # Setup mock mock_chat = MagicMock() mock_chat.send_message.return_value.text = "Keep it up!" mock_client_inst = MagicMock() mock_client_inst.chats.create.return_value = mock_chat mock_genai_client.return_value = mock_client_inst engine = RecommendationEngine(api_key="fake_key") response = engine.chat_with_data("Hello", history=[]) assert response == "Keep it up!" assert mock_client_inst.chats.create.called @patch("google.genai.Client") def test_get_recommendation_calls_chat(mock_genai_client): mock_chat = MagicMock() mock_chat.send_message.return_value.text = "Tip!" mock_client_inst = MagicMock() mock_client_inst.chats.create.return_value = mock_chat mock_genai_client.return_value = mock_client_inst engine = RecommendationEngine(api_key="fake_key") response = engine.get_recommendation([], "fitness") assert response == "Tip!" @patch("os.getenv", return_value=None) def test_mock_response_when_no_api_key(mock_env): engine = RecommendationEngine(api_key=None) # Mocking is done via client=None check response = engine.chat_with_data("Hello") assert "AI unavailable" in response