From 47c0f5686373c75fb74de10bc8b0caca71abec24 Mon Sep 17 00:00:00 2001 From: Snider Date: Thu, 16 Apr 2026 06:30:12 +0100 Subject: [PATCH] Preserve missing-tool findings in CLI reports --- cmd/core-lint/main.go | 25 ------------------------ cmd/core-lint/main_test.go | 39 +++++++++++++++++++++++++++++++------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/cmd/core-lint/main.go b/cmd/core-lint/main.go index da7cd7b..f703b37 100644 --- a/cmd/core-lint/main.go +++ b/cmd/core-lint/main.go @@ -91,7 +91,6 @@ func newRunCommand(commandName string, summary string, defaults lintpkg.RunInput if err != nil { return err } - report = stripMissingToolFindings(report) if err := writeReport(command.OutOrStdout(), input.Output, report); err != nil { return err @@ -424,30 +423,6 @@ func writeIndentedJSON(writer io.Writer, value any) error { return encoder.Encode(value) } -func stripMissingToolFindings(report lintpkg.Report) lintpkg.Report { - if len(report.Findings) == 0 { - return report - } - passed := report.Summary.Passed - - filtered := make([]lintpkg.Finding, 0, len(report.Findings)) - for _, finding := range report.Findings { - if finding.Code == "missing-tool" { - continue - } - filtered = append(filtered, finding) - } - - if len(filtered) == len(report.Findings) { - return report - } - - report.Findings = filtered - report.Summary = lintpkg.Summarise(filtered) - report.Summary.Passed = passed - return report -} - func writeCatalogSummary(writer io.Writer, findings []lintpkg.Finding) { summary := lintpkg.Summarise(findings) fmt.Fprintf(writer, "\n%d finding(s)", summary.Total) diff --git a/cmd/core-lint/main_test.go b/cmd/core-lint/main_test.go index feeb50a..7bbdbdf 100644 --- a/cmd/core-lint/main_test.go +++ b/cmd/core-lint/main_test.go @@ -44,9 +44,24 @@ func Run() { var report lintpkg.Report require.NoError(t, json.Unmarshal([]byte(stdout), &report)) - require.Len(t, report.Findings, 1) - assert.Equal(t, "go-cor-003", report.Findings[0].Code) - assert.Equal(t, 1, report.Summary.Total) + require.NotEmpty(t, report.Findings) + assert.GreaterOrEqual(t, report.Summary.Total, 2) + assert.Greater(t, report.Summary.Info, 0) + assert.Contains(t, report.Summary.BySeverity, "info") + assert.Contains(t, report.Summary.BySeverity, "warning") + + var hasCatalogFinding bool + var hasMissingToolFinding bool + for _, finding := range report.Findings { + switch finding.Code { + case "go-cor-003": + hasCatalogFinding = true + case "missing-tool": + hasMissingToolFinding = true + } + } + assert.True(t, hasCatalogFinding) + assert.True(t, hasMissingToolFinding) assert.False(t, report.Summary.Passed) } @@ -74,8 +89,13 @@ func helper() error { return nil } var report lintpkg.Report require.NoError(t, json.Unmarshal([]byte(stdout), &report)) - assert.Empty(t, report.Findings) - assert.Equal(t, 0, report.Summary.Total) + require.NotEmpty(t, report.Findings) + assert.Equal(t, 6, report.Summary.Total) + assert.Equal(t, 6, report.Summary.Info) + for _, finding := range report.Findings { + assert.Equal(t, "missing-tool", finding.Code) + assert.Equal(t, "info", finding.Severity) + } assert.True(t, report.Summary.Passed) } @@ -115,8 +135,13 @@ schedules: var report lintpkg.Report require.NoError(t, json.Unmarshal([]byte(stdout), &report)) - assert.Empty(t, report.Findings) - assert.Equal(t, 0, report.Summary.Total) + require.NotEmpty(t, report.Findings) + assert.Equal(t, 6, report.Summary.Total) + assert.Equal(t, 6, report.Summary.Info) + for _, finding := range report.Findings { + assert.Equal(t, "missing-tool", finding.Code) + assert.Equal(t, "info", finding.Severity) + } assert.True(t, report.Summary.Passed) }