Skip to content

Commit

Permalink
🛑 report scores in numbers (#1248)
Browse files Browse the repository at this point in the history
  • Loading branch information
chris-rock authored Apr 17, 2024
1 parent 1b45806 commit 0aa24bc
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 29 deletions.
10 changes: 5 additions & 5 deletions cli/reporter/cli_reporter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ func TestCompactReporter(t *testing.T) {
}
rr.print()

assert.Contains(t, buf.String(), "✕ Fail: Ensure")
assert.Contains(t, buf.String(), ". Skipped: Set")
assert.Contains(t, buf.String(), "! Error: Set")
assert.Contains(t, buf.String(), "✓ Pass: A 100 Ensure")
assert.Contains(t, buf.String(), "✕ Fail: F 0 Ensure")
assert.Contains(t, buf.String(), "✕ Fail: Ensure")
assert.Contains(t, buf.String(), ". Skipped: Set")
assert.Contains(t, buf.String(), "! Error: Set")
assert.Contains(t, buf.String(), "✓ Pass: 100 Ensure")
assert.Contains(t, buf.String(), "✕ Fail: 0 Ensure")
}

func TestVulnReporter(t *testing.T) {
Expand Down
20 changes: 10 additions & 10 deletions cli/reporter/file_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ func TestFileHandler(t *testing.T) {
require.NoError(t, err)

strData := string(data)
assert.Contains(t, strData, "✕ Fail: Ensure")
assert.Contains(t, strData, ". Skipped: Set")
assert.Contains(t, strData, "! Error: Set")
assert.Contains(t, strData, "✓ Pass: A 100 Ensure")
assert.Contains(t, strData, "✕ Fail: F 0 Ensure")
assert.Contains(t, strData, "✕ Fail: Ensure")
assert.Contains(t, strData, ". Skipped: Set")
assert.Contains(t, strData, "! Error: Set")
assert.Contains(t, strData, "✓ Pass: 100 Ensure")
assert.Contains(t, strData, "✕ Fail: 0 Ensure")
err = os.Remove(fileName)
require.NoError(t, err)
})
Expand All @@ -58,11 +58,11 @@ func TestFileHandler(t *testing.T) {
require.NoError(t, err)

strData := string(data)
assert.Contains(t, strData, "✕ Fail: Ensure")
assert.Contains(t, strData, ". Skipped: Set")
assert.Contains(t, strData, "! Error: Set")
assert.Contains(t, strData, "✓ Pass: A 100 Ensure")
assert.Contains(t, strData, "✕ Fail: F 0 Ensure")
assert.Contains(t, strData, "✕ Fail: Ensure")
assert.Contains(t, strData, ". Skipped: Set")
assert.Contains(t, strData, "! Error: Set")
assert.Contains(t, strData, "✓ Pass: 100 Ensure")
assert.Contains(t, strData, "✕ Fail: 0 Ensure")
err = os.Remove(trimmed)
require.NoError(t, err)
})
Expand Down
27 changes: 13 additions & 14 deletions cli/reporter/print_compact.go
Original file line number Diff line number Diff line change
Expand Up @@ -263,12 +263,12 @@ func (r *defaultReporter) printAssetsByPlatform(assetsByPlatform map[string][]*i
for _, platform := range availablePlatforms {
r.out(NewLineCharacter + platform + NewLineCharacter)
for i := range assetsByPlatform[platform] {
assetScore := "U"
assetScore := ""
assetScoreRating := policy.ScoreRating_unrated
if r.data.Reports[assetsByPlatform[platform][i].Mrn] != nil {
score := r.data.Reports[assetsByPlatform[platform][i].Mrn].Score
assetScoreRating = score.Rating()
assetScore = assetScoreRating.Letter() + " [" + strconv.Itoa(int(score.Value)) + "/100]"
assetScore = "[" + strconv.Itoa(int(score.Value)) + "/100]"
} else {
assetScoreRating = policy.ScoreRating_error
assetScore = "X"
Expand All @@ -282,8 +282,7 @@ func (r *defaultReporter) printAssetsByPlatform(assetsByPlatform map[string][]*i
}

func printCompactScoreSummary(score *policy.Score) string {
return fmt.Sprintf("%s %3d/100 (%d%% completed)",
score.Rating().Letter(),
return fmt.Sprintf("%3d/100 (%d%% completed)",
score.Value, score.Completion())
}

Expand Down Expand Up @@ -427,21 +426,21 @@ func (r *defaultReporter) printControl(score *policy.Score, control *policy.Cont

switch score.Type {
case policy.ScoreType_Error:
r.out(termenv.String("! Error: ").Foreground(r.Colors.Error).String())
r.out(termenv.String("! Error: ").Foreground(r.Colors.Error).String())
r.out(title)
r.out(NewLineCharacter)
if !r.isCompact {
errorMessage := strings.ReplaceAll(score.Message, "\n", NewLineCharacter)
r.out(termenv.String(" Message: " + errorMessage).Foreground(r.Colors.Error).String())
r.out(termenv.String(" Message: " + errorMessage).Foreground(r.Colors.Error).String())
r.out(NewLineCharacter)
}
case policy.ScoreType_Unknown, policy.ScoreType_Unscored:
r.out(termenv.String(". Unknown: ").Foreground(r.Colors.Disabled).String())
r.out(termenv.String(". Unknown: ").Foreground(r.Colors.Disabled).String())
r.out(title)
r.out(NewLineCharacter)

case policy.ScoreType_Skip:
r.out(termenv.String(". Skipped: ").Foreground(r.Colors.Disabled).String())
r.out(termenv.String(". Skipped: ").Foreground(r.Colors.Disabled).String())
r.out(title)
r.out(NewLineCharacter)

Expand Down Expand Up @@ -567,10 +566,10 @@ func (r *defaultReporter) printScore(title string, score *policy.Score, query *e
passfail = termenv.String("✕ Fail: ").Foreground(color).String()
}

scoreIndicator := " "
scoreIndicator := " "
if query.Impact != nil {
scoreIndicator = termenv.String(
fmt.Sprintf("%s %3d ", rating.Letter(), score.Value),
fmt.Sprintf("%3d ", score.Value),
).Foreground(color).String()
}

Expand All @@ -585,21 +584,21 @@ func (r *defaultReporter) printCheck(score *policy.Score, query *explorer.Mquery

switch score.Type {
case policy.ScoreType_Error:
r.out(termenv.String("! Error: ").Foreground(r.Colors.Error).String())
r.out(termenv.String("! Error: ").Foreground(r.Colors.Error).String())
r.out(title)
r.out(NewLineCharacter)
if !r.isCompact {
errorMessage := strings.ReplaceAll(score.Message, "\n", NewLineCharacter)
r.out(termenv.String(" Message: " + errorMessage).Foreground(r.Colors.Error).String())
r.out(termenv.String(" Message: " + errorMessage).Foreground(r.Colors.Error).String())
r.out(NewLineCharacter)
}
case policy.ScoreType_Unknown, policy.ScoreType_Unscored:
r.out(termenv.String(". Unknown: ").Foreground(r.Colors.Disabled).String())
r.out(termenv.String(". Unknown: ").Foreground(r.Colors.Disabled).String())
r.out(title)
r.out(NewLineCharacter)

case policy.ScoreType_Skip:
r.out(termenv.String(". Skipped: ").Foreground(r.Colors.Disabled).String())
r.out(termenv.String(". Skipped: ").Foreground(r.Colors.Disabled).String())
r.out(title)
r.out(NewLineCharacter)

Expand Down

0 comments on commit 0aa24bc

Please sign in to comment.