diff options
| author | Taras Madan <tarasmadan@google.com> | 2025-04-10 14:16:42 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2025-04-30 13:27:27 +0000 |
| commit | ce7952f4e369f2440b2bc369868df305c42bf7d6 (patch) | |
| tree | 751a33beb2e15bcd3032534117ff0fe9cab69806 /pkg/cover/heatmap.go | |
| parent | 254b4cda876789c00ce81a7f9cbb2851205c336d (diff) | |
dashboard/app: send coverage report to ns-defined email
We periodically send coverage reports for the regressions detection.
Diffstat (limited to 'pkg/cover/heatmap.go')
| -rw-r--r-- | pkg/cover/heatmap.go | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/pkg/cover/heatmap.go b/pkg/cover/heatmap.go index e6458c36b..672312fee 100644 --- a/pkg/cover/heatmap.go +++ b/pkg/cover/heatmap.go @@ -145,12 +145,20 @@ func (thm *templateHeatmapRow) prepareDataFor(pageColumns []pageColumnTarget) { } } +func (thm *templateHeatmapRow) Visit(v func(string, int64), path ...string) { + curPath := append(path, thm.Name) + v(strings.Join(curPath, "/"), thm.Summary) + for _, item := range thm.Items { + item.Visit(v, curPath...) + } +} + type pageColumnTarget struct { TimePeriod coveragedb.TimePeriod Commit string } -func filesCoverageToTemplateData(fCov []*coveragedb.FileCoverageWithDetails) *templateHeatmap { +func FilesCoverageToTemplateData(fCov []*coveragedb.FileCoverageWithDetails) *templateHeatmap { res := templateHeatmap{ Root: &templateHeatmapRow{ IsDir: true, @@ -223,7 +231,7 @@ func DoHeatMapStyleBodyJS( if err != nil { return "", "", "", fmt.Errorf("failed to FilesCoverageWithDetails: %w", err) } - templData := filesCoverageToTemplateData(covAndDates) + templData := FilesCoverageToTemplateData(covAndDates) templData.Subsystems = sss templData.Managers = managers FormatResult(templData, dataFilters) @@ -252,7 +260,7 @@ func DoSubsystemsHeatMapStyleBodyJS( ssCovAndDates = append(ssCovAndDates, &newRecord) } } - templData := filesCoverageToTemplateData(ssCovAndDates) + templData := FilesCoverageToTemplateData(ssCovAndDates) templData.Managers = managers FormatResult(templData, format) return stylesBodyJSTemplate(templData) |
