@@ -6866,6 +6866,7 @@ def test_overview_attack_surface_no_data(self, authenticated_client):
68666866 assert item ["attributes" ]["total_findings" ] == 0
68676867 assert item ["attributes" ]["failed_findings" ] == 0
68686868 assert item ["attributes" ]["muted_failed_findings" ] == 0
6869+ assert item ["attributes" ]["check_ids" ] == []
68696870
68706871 def test_overview_attack_surface_with_data (
68716872 self ,
@@ -6877,6 +6878,13 @@ def test_overview_attack_surface_with_data(
68776878 tenant = tenants_fixture [0 ]
68786879 provider = providers_fixture [0 ]
68796880
6881+ mapping = {
6882+ "internet-exposed" : {"aws-check-1" , "aws-check-2" },
6883+ "secrets" : {"aws-secret-check" },
6884+ "privilege-escalation" : {"aws-priv-check" },
6885+ "ec2-imdsv1" : {"aws-imdsv1-check" },
6886+ }
6887+
68806888 scan = Scan .objects .create (
68816889 name = "attack-surface-scan" ,
68826890 provider = provider ,
@@ -6902,18 +6910,31 @@ def test_overview_attack_surface_with_data(
69026910 muted_failed = 2 ,
69036911 )
69046912
6905- response = authenticated_client .get (reverse ("overview-attack-surface" ))
6913+ with patch (
6914+ "api.v1.views._get_attack_surface_mapping_from_provider" ,
6915+ return_value = mapping ,
6916+ ):
6917+ response = authenticated_client .get (reverse ("overview-attack-surface" ))
69066918 assert response .status_code == status .HTTP_200_OK
69076919 data = response .json ()["data" ]
69086920 assert len (data ) == 4
69096921
69106922 results_by_type = {item ["id" ]: item ["attributes" ] for item in data }
69116923 assert results_by_type ["internet-exposed" ]["total_findings" ] == 20
69126924 assert results_by_type ["internet-exposed" ]["failed_findings" ] == 10
6925+ assert set (results_by_type ["internet-exposed" ]["check_ids" ]) == {
6926+ "aws-check-1" ,
6927+ "aws-check-2" ,
6928+ }
69136929 assert results_by_type ["secrets" ]["total_findings" ] == 15
69146930 assert results_by_type ["secrets" ]["failed_findings" ] == 8
6931+ assert set (results_by_type ["secrets" ]["check_ids" ]) == {"aws-secret-check" }
69156932 assert results_by_type ["privilege-escalation" ]["total_findings" ] == 0
6933+ assert set (results_by_type ["privilege-escalation" ]["check_ids" ]) == {
6934+ "aws-priv-check"
6935+ }
69166936 assert results_by_type ["ec2-imdsv1" ]["total_findings" ] == 0
6937+ assert set (results_by_type ["ec2-imdsv1" ]["check_ids" ]) == {"aws-imdsv1-check" }
69176938
69186939 def test_overview_attack_surface_provider_filter (
69196940 self ,
@@ -6940,6 +6961,13 @@ def test_overview_attack_surface_provider_filter(
69406961 tenant = tenant ,
69416962 )
69426963
6964+ mapping = {
6965+ "internet-exposed" : {"shared-check" , "shared-check" },
6966+ "secrets" : set (),
6967+ "privilege-escalation" : {"priv-check" },
6968+ "ec2-imdsv1" : {"imdsv1-check" },
6969+ }
6970+
69436971 create_attack_surface_overview (
69446972 tenant ,
69456973 scan1 ,
@@ -6957,15 +6985,20 @@ def test_overview_attack_surface_provider_filter(
69576985 muted_failed = 3 ,
69586986 )
69596987
6960- response = authenticated_client .get (
6961- reverse ("overview-attack-surface" ),
6962- {"filter[provider_id]" : str (provider1 .id )},
6963- )
6988+ with patch (
6989+ "api.v1.views._get_attack_surface_mapping_from_provider" ,
6990+ return_value = mapping ,
6991+ ):
6992+ response = authenticated_client .get (
6993+ reverse ("overview-attack-surface" ),
6994+ {"filter[provider_id]" : str (provider1 .id )},
6995+ )
69646996 assert response .status_code == status .HTTP_200_OK
69656997 data = response .json ()["data" ]
69666998 results_by_type = {item ["id" ]: item ["attributes" ] for item in data }
69676999 assert results_by_type ["internet-exposed" ]["total_findings" ] == 10
69687000 assert results_by_type ["internet-exposed" ]["failed_findings" ] == 5
7001+ assert results_by_type ["internet-exposed" ]["check_ids" ] == ["shared-check" ]
69697002
69707003 def test_overview_services_region_filter (
69717004 self , authenticated_client , scan_summaries_fixture
0 commit comments