This commit is contained in:
Tomas Dvorak
2026-02-24 10:33:59 +01:00
parent 409acd2e08
commit 898a3c303f
1374 changed files with 290409 additions and 29187 deletions
+36
View File
@@ -0,0 +1,36 @@
package quality
import (
"context"
"testing"
)
type panicDetector struct{}
func (p panicDetector) Name() string { return "panic_detector" }
func (p panicDetector) Severity() Severity { return SeverityT2 }
func (p panicDetector) Detect(ctx context.Context, path string, config *Config) ([]Finding, error) {
panic("boom")
}
type okDetector struct{}
func (o okDetector) Name() string { return "ok_detector" }
func (o okDetector) Severity() Severity { return SeverityT1 }
func (o okDetector) Detect(ctx context.Context, path string, config *Config) ([]Finding, error) {
return []Finding{{ID: "ok", Type: "ok", Title: "ok", File: "f.go", Line: 1, Severity: SeverityT1, Score: 1, Status: StatusOpen}}, nil
}
func TestScannerRecoversDetectorPanic(t *testing.T) {
s := NewScanner(&Config{Path: ".", Language: "go"})
s.RegisterDetector(panicDetector{})
s.RegisterDetector(okDetector{})
result, err := s.Scan(context.Background())
if err != nil {
t.Fatalf("scan should recover detector panic, got err: %v", err)
}
if len(result.Findings) != 1 {
t.Fatalf("expected findings from healthy detector only, got %d", len(result.Findings))
}
}