From 9626f28dfed2f42363fa7fe6e858e0f4595ccbb3 Mon Sep 17 00:00:00 2001 From: CatalinSnyk Date: Fri, 14 Nov 2025 17:21:44 +0200 Subject: [PATCH] chore: ensure each test result gets a SARIF run --- internal/presenters/funcs.go | 8 +++++++- internal/presenters/presenter_ufm_test.go | 10 ---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/internal/presenters/funcs.go b/internal/presenters/funcs.go index b3709d972..548ca88a2 100644 --- a/internal/presenters/funcs.go +++ b/internal/presenters/funcs.go @@ -401,7 +401,13 @@ func getFindingTypesFromTestResult(testResults testapi.TestResult) []testapi.Fin } findingTypes[findings.Attributes.FindingType] = true } - return slices.Collect(maps.Keys(findingTypes)) + + findingTypesList := slices.Collect(maps.Keys(findingTypes)) + if len(findingTypesList) == 0 { + return []testapi.FindingType{"no findings type found"} + } + + return findingTypesList } // getManifestPathFromTestResult extracts the manifest file path from test result diff --git a/internal/presenters/presenter_ufm_test.go b/internal/presenters/presenter_ufm_test.go index 744013f8e..73637ef1d 100644 --- a/internal/presenters/presenter_ufm_test.go +++ b/internal/presenters/presenter_ufm_test.go @@ -456,19 +456,12 @@ func normalizeSarifForComparison(t *testing.T, sarifJSON string) map[string]inte return sarif } - // TODO: preserve SARIF runs even if there are no findings - filteredRuns := make([]interface{}, 0) for _, runInterface := range runs { run, ok := runInterface.(map[string]interface{}) if !ok { continue } - results, ok := run["results"].([]interface{}) - if !ok || len(results) == 0 { - continue - } - // Normalize automation ID (missing project name in actual output) normalizeAutomationID(run) @@ -483,11 +476,8 @@ func normalizeSarifForComparison(t *testing.T, sarifJSON string) map[string]inte // Normalize suppressions (not included in original SARIF) normalizeSuppressions(run) - - filteredRuns = append(filteredRuns, run) } - sarif["runs"] = filteredRuns return sarif }