@@ -1098,6 +1098,96 @@ def test_from_api_response_missing_metadata(self, jira_search_data):
10981098 assert search_result .max_results == - 1
10991099 assert len (search_result .issues ) == 1 # Assuming mock data has issues
11001100
1101+ def test_to_simplified_dict (self , jira_search_data ):
1102+ """Test converting JiraSearchResult to a simplified dictionary."""
1103+ search_result = JiraSearchResult .from_api_response (jira_search_data )
1104+ simplified = search_result .to_simplified_dict ()
1105+
1106+ # Verify the structure and basic metadata
1107+ assert isinstance (simplified , dict )
1108+ assert "total" in simplified
1109+ assert "start_at" in simplified
1110+ assert "max_results" in simplified
1111+ assert "issues" in simplified
1112+
1113+ # Verify metadata values
1114+ assert simplified ["total" ] == 34
1115+ assert simplified ["start_at" ] == 0
1116+ assert simplified ["max_results" ] == 5
1117+
1118+ # Verify issues array
1119+ assert isinstance (simplified ["issues" ], list )
1120+ assert len (simplified ["issues" ]) == 1
1121+
1122+ # Verify that each issue is a simplified dict (not a JiraIssue object)
1123+ issue = simplified ["issues" ][0 ]
1124+ assert isinstance (issue , dict )
1125+ assert issue ["key" ] == "PROJ-123"
1126+ assert issue ["summary" ] == "Test Issue Summary"
1127+
1128+ # Verify that the issues are properly simplified (calling to_simplified_dict on each)
1129+ # This ensures field filtering works properly
1130+ assert "id" in issue # ID is included in simplified version
1131+ assert "expand" not in issue # Should be filtered out in simplified version
1132+
1133+ # Verify that issue contains expected fields
1134+ assert "assignee" in issue
1135+ assert "created" in issue
1136+ assert "updated" in issue
1137+
1138+ def test_to_simplified_dict_empty_result (self ):
1139+ """Test converting an empty JiraSearchResult to a simplified dictionary."""
1140+ search_result = JiraSearchResult ()
1141+ simplified = search_result .to_simplified_dict ()
1142+
1143+ assert isinstance (simplified , dict )
1144+ assert simplified ["total" ] == 0
1145+ assert simplified ["start_at" ] == 0
1146+ assert simplified ["max_results" ] == 0
1147+ assert simplified ["issues" ] == []
1148+
1149+ def test_to_simplified_dict_with_multiple_issues (self ):
1150+ """Test converting JiraSearchResult with multiple issues to a simplified dictionary."""
1151+ # Create mock data with multiple issues
1152+ mock_data = {
1153+ "total" : 2 ,
1154+ "startAt" : 0 ,
1155+ "maxResults" : 10 ,
1156+ "issues" : [
1157+ {
1158+ "id" : "12345" ,
1159+ "key" : "PROJ-123" ,
1160+ "fields" : {
1161+ "summary" : "First Issue" ,
1162+ "status" : {"name" : "In Progress" },
1163+ },
1164+ },
1165+ {
1166+ "id" : "12346" ,
1167+ "key" : "PROJ-124" ,
1168+ "fields" : {
1169+ "summary" : "Second Issue" ,
1170+ "status" : {"name" : "Done" },
1171+ },
1172+ },
1173+ ],
1174+ }
1175+
1176+ search_result = JiraSearchResult .from_api_response (mock_data )
1177+ simplified = search_result .to_simplified_dict ()
1178+
1179+ # Verify metadata
1180+ assert simplified ["total" ] == 2
1181+ assert simplified ["start_at" ] == 0
1182+ assert simplified ["max_results" ] == 10
1183+
1184+ # Verify issues
1185+ assert len (simplified ["issues" ]) == 2
1186+ assert simplified ["issues" ][0 ]["key" ] == "PROJ-123"
1187+ assert simplified ["issues" ][0 ]["summary" ] == "First Issue"
1188+ assert simplified ["issues" ][1 ]["key" ] == "PROJ-124"
1189+ assert simplified ["issues" ][1 ]["summary" ] == "Second Issue"
1190+
11011191
11021192class TestJiraProject :
11031193 """Tests for the JiraProject model."""
0 commit comments