Skip to content

Commit 075d0b5

Browse files
authored
fix: make ResultProperties.Policy nilable (#64)
1 parent c1be7d5 commit 075d0b5

File tree

3 files changed

+29
-8
lines changed

3 files changed

+29
-8
lines changed

internal/analysis/analysis_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"context"
2121
_ "embed"
2222
"fmt"
23+
"github.com/snyk/code-client-go/sarif"
2324
"io"
2425
"net/http"
2526
"strconv"
@@ -347,6 +348,19 @@ func TestAnalysis_RunAnalysis(t *testing.T) {
347348

348349
require.NoError(t, err)
349350
assert.Equal(t, "scripts/db/migrations/20230811153738_add_generated_grouping_columns_to_collections_table.ts", actual.Sarif.Runs[0].Results[0].Locations[0].PhysicalLocation.ArtifactLocation.URI)
351+
352+
t.Run("should return policy details when provided", func(t *testing.T) {
353+
expectedPolicy := sarif.SnykPolicyV1{
354+
OriginalLevel: "warning",
355+
OriginalSeverity: "critical",
356+
Severity: "high",
357+
}
358+
assert.Equal(t, &expectedPolicy, actual.Sarif.Runs[0].Results[5].Properties.Policy)
359+
})
360+
361+
t.Run("should default policy to nil when not provided", func(t *testing.T) {
362+
assert.Nil(t, actual.Sarif.Runs[0].Results[0].Properties.Policy)
363+
})
350364
}
351365

352366
func TestAnalysis_RunAnalysis_TriggerFunctionError(t *testing.T) {

internal/analysis/fake.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,12 @@
806806
"type": "fixExamples"
807807
}
808808
],
809-
"isAutofixable": false
809+
"isAutofixable": false,
810+
"snykPolicy/v1": {
811+
"originalLevel": "warning",
812+
"originalSeverity": "critical",
813+
"severity": "high"
814+
}
810815
}
811816
}
812817
],
@@ -834,4 +839,4 @@
834839
}
835840
}
836841
]
837-
}
842+
}

sarif/sarif_types.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,20 @@ type Fingerprints struct {
8989
Identity string `json:"identity"`
9090
}
9191

92+
type SnykPolicyV1 struct {
93+
OriginalLevel string `json:"originalLevel"`
94+
OriginalSeverity string `json:"originalSeverity"`
95+
Severity string `json:"severity"`
96+
}
97+
9298
type ResultProperties struct {
9399
PriorityScore int `json:"priorityScore"`
94100
PriorityScoreFactors []struct {
95101
Label bool `json:"label"`
96102
Type string `json:"type"`
97103
} `json:"priorityScoreFactors"`
98-
IsAutofixable bool `json:"isAutofixable"`
99-
Policy struct {
100-
OriginalLevel string `json:"originalLevel"`
101-
OriginalSeverity string `json:"originalSeverity"`
102-
Severity string `json:"severity"`
103-
} `json:"snykPolicy/v1"`
104+
IsAutofixable bool `json:"isAutofixable"`
105+
Policy *SnykPolicyV1 `json:"snykPolicy/v1,omitempty"`
104106
}
105107

106108
type Result struct {

0 commit comments

Comments
 (0)