Skip to content
This repository has been archived by the owner on Oct 30, 2024. It is now read-only.

Commit

Permalink
feedback: adds subtests
Browse files Browse the repository at this point in the history
  • Loading branch information
dani-santos-code committed Aug 1, 2022
1 parent c486c0a commit 36ffd3b
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 45 deletions.
94 changes: 49 additions & 45 deletions internal/sarif/sarif_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,56 +59,58 @@ func TestCreateWithResults(t *testing.T) {
[]kubeaudit.Auditable{limitsAuditable},
limits.LimitsNotSet,
"warning",
"Resource limits not set.",
"Resource limits not set",
"https://github.com/Shopify/kubeaudit/blob/main/docs/auditors/limits.md",
},
}

for _, tc := range cases {
fixture := filepath.Join("fixtures", tc.file)
auditor, err := kubeaudit.New(tc.auditors)
require.NoError(t, err)
t.Run(tc.file, func(t *testing.T) {
fixture := filepath.Join("fixtures", tc.file)
auditor, err := kubeaudit.New(tc.auditors)
require.NoError(t, err)

manifest, openErr := os.Open(fixture)
require.NoError(t, openErr)
manifest, openErr := os.Open(fixture)
require.NoError(t, openErr)

defer manifest.Close()
defer manifest.Close()

kubeAuditReport, err := auditor.AuditManifest(fixture, manifest)
require.NoError(t, err)
kubeAuditReport, err := auditor.AuditManifest(fixture, manifest)
require.NoError(t, err)

sarifReport, err := Create(kubeAuditReport)
require.NoError(t, err)
sarifReport, err := Create(kubeAuditReport)
require.NoError(t, err)

assert.Equal(t, "https://github.com/Shopify/kubeaudit",
*sarifReport.Runs[0].Tool.Driver.InformationURI)
assert.Equal(t, "https://github.com/Shopify/kubeaudit",
*sarifReport.Runs[0].Tool.Driver.InformationURI)

// verify that the rules have been added as per report findings
assert.Equal(t, tc.expectedRule, sarifReport.Runs[0].Tool.Driver.Rules[0].ID)
// verify that the rules have been added as per report findings
assert.Equal(t, tc.expectedRule, sarifReport.Runs[0].Tool.Driver.Rules[0].ID)

var ruleNames []string
var ruleNames []string

// check for rules occurrences
for _, sarifRule := range sarifReport.Runs[0].Tool.Driver.Rules {
assert.Equal(t, []string{
"security",
"kubernetes",
"infrastructure",
},
sarifRule.Properties["tags"],
)
// check for rules occurrences
for _, sarifRule := range sarifReport.Runs[0].Tool.Driver.Rules {
assert.Equal(t, []string{
"security",
"kubernetes",
"infrastructure",
},
sarifRule.Properties["tags"],
)

ruleNames = append(ruleNames, sarifRule.ID)
ruleNames = append(ruleNames, sarifRule.ID)

assert.Contains(t, *sarifRule.Help.Text, tc.expectedURI)
}
assert.Contains(t, *sarifRule.Help.Text, tc.expectedURI)
}

for _, sarifResult := range sarifReport.Runs[0].Results {
assert.Contains(t, ruleNames, *sarifResult.RuleID)
assert.Equal(t, tc.expectedErrorLevel, *sarifResult.Level)
assert.Contains(t, *sarifResult.Message.Text, tc.expectedMessage)
assert.Contains(t, "sarif/fixtures/"+tc.file, *sarifResult.Locations[0].PhysicalLocation.ArtifactLocation.URI)
}
for _, sarifResult := range sarifReport.Runs[0].Results {
assert.Contains(t, ruleNames, *sarifResult.RuleID)
assert.Equal(t, tc.expectedErrorLevel, *sarifResult.Level)
assert.Contains(t, *sarifResult.Message.Text, tc.expectedMessage)
assert.Contains(t, "sarif/fixtures/"+tc.file, *sarifResult.Locations[0].PhysicalLocation.ArtifactLocation.URI)
}
})
}
}

Expand All @@ -129,21 +131,23 @@ func TestValidate(t *testing.T) {
}

for _, tc := range cases {
var reportBytes bytes.Buffer
t.Run(tc.file, func(t *testing.T) {
var reportBytes bytes.Buffer

testSarif, err := ioutil.ReadFile("fixtures/" + tc.file)
require.NoError(t, err)
testSarif, err := ioutil.ReadFile("fixtures/" + tc.file)
require.NoError(t, err)

reportBytes.Write(testSarif)
reportBytes.Write(testSarif)

err, errs := validate(&reportBytes)
require.NoError(t, err)
err, errs := validate(&reportBytes)
require.NoError(t, err)

if !tc.shouldBeValid {
assert.True(t, len(errs) > 0)
} else {
assert.Len(t, errs, 0)
}
if !tc.shouldBeValid {
assert.True(t, len(errs) > 0)
} else {
assert.Len(t, errs, 0)
}
})
}
}

Expand Down
25 changes: 25 additions & 0 deletions profile.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
mode: atomic
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:15.71,18.16 2 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:23.2,29.57 4 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:34.2,34.33 1 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:85.2,88.16 3 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:92.2,93.16 2 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:97.2,97.19 1 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:101.2,101.20 1 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:18.16,20.3 1 0
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:29.57,32.3 2 4
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:34.33,43.9 5 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:47.3,68.41 4 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:72.3,82.24 4 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:43.9,45.4 1 5
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:68.41,70.4 1 1
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:88.16,90.3 1 0
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:93.16,95.3 1 0
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:97.19,99.3 1 0
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:106.69,111.8 4 7
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:115.2,117.16 2 7
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:121.2,121.20 1 7
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:125.2,125.29 1 1
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:111.8,113.3 1 7
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:117.16,119.3 1 0
github.com/Shopify/kubeaudit/internal/sarif/sarif.go:121.20,123.3 1 6

0 comments on commit 36ffd3b

Please sign in to comment.