@@ -595,12 +595,17 @@ def test_arun_both_current_session_and_filters_true_returns_error(self) -> None:
595595 self .assertIn ("encountered an issue" , message .content )
596596
597597 @patch ("ee.hogai.chat_agent.session_summaries.nodes.execute_summarize_session" )
598+ @patch ("ee.hogai.chat_agent.session_summaries.nodes._SessionSearch._validate_specific_session_ids" )
598599 @patch ("ee.hogai.chat_agent.session_summaries.nodes.GROUP_SUMMARIES_MIN_SESSIONS" , 5 )
599- def test_arun_use_current_session_with_session_id (self , mock_execute_summarize : MagicMock ) -> None :
600+ def test_arun_use_current_session_with_session_id (
601+ self , mock_validate_session_ids : MagicMock , mock_execute_summarize : MagicMock
602+ ) -> None :
600603 """Test arun uses current session ID when specific_session_ids_to_summarize are provided."""
601604 conversation = Conversation .objects .create (team = self .team , user = self .user )
602605 session_id = "00000000-0000-0000-0000-000000000001"
603606
607+ mock_validate_session_ids .return_value = [session_id ]
608+
604609 async def mock_summarize_side_effect (* args : Any , ** kwargs : Any ) -> dict [str , Any ]:
605610 return self ._session_template (session_id )
606611
@@ -936,3 +941,26 @@ def test_get_session_ids_respects_limit(self) -> None:
936941 self .assertIsNotNone (session_ids )
937942 assert session_ids is not None # Type narrowing for mypy
938943 self .assertEqual (len (session_ids ), 1 , "Should return exactly 1 session due to limit" )
944+
945+ @freeze_time ("2025-09-03T12:00:00" )
946+ def test_validate_specific_session_ids_filters_invalid (self ) -> None :
947+ """Test that invalid session IDs are filtered out while valid ones are kept."""
948+ valid_ids = [self .session_id_1 , self .session_id_2 ]
949+ invalid_ids = ["nonexistent-session-1" , "nonexistent-session-2" ]
950+ all_ids = valid_ids + invalid_ids
951+
952+ result = self .node ._session_search ._validate_specific_session_ids (all_ids )
953+
954+ self .assertIsNotNone (result )
955+ assert result is not None
956+ self .assertEqual (len (result ), 2 )
957+ self .assertEqual (result , valid_ids )
958+
959+ @freeze_time ("2025-09-03T12:00:00" )
960+ def test_validate_specific_session_ids_all_invalid_returns_none (self ) -> None :
961+ """Test that when all session IDs are invalid, None is returned."""
962+ invalid_ids = ["nonexistent-session-1" , "nonexistent-session-2" ]
963+
964+ result = self .node ._session_search ._validate_specific_session_ids (invalid_ids )
965+
966+ self .assertIsNone (result )
0 commit comments