From 73d2a07be0d296d13eb834b665be7225a4f3ac9b Mon Sep 17 00:00:00 2001 From: Taras Madan Date: Fri, 2 May 2025 13:38:30 +0200 Subject: dashboard/app: fix bugs in handleCoverageReports 1. Set coverage db. 2. Use appUrl instead of r[.URL].Host. --- dashboard/app/reporting_email.go | 10 ++++++---- dashboard/app/reporting_test.go | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'dashboard') diff --git a/dashboard/app/reporting_email.go b/dashboard/app/reporting_email.go index dc7fa9eb9..a141caba5 100644 --- a/dashboard/app/reporting_email.go +++ b/dashboard/app/reporting_email.go @@ -110,7 +110,9 @@ func (cfg *EmailConfig) Validate() error { // Assuming it is called June 15, the monthly report will cover April-May diff. func handleCoverageReports(w http.ResponseWriter, r *http.Request) { ctx := r.Context() - curHostPort := r.URL.Host + if coverageDBClient != nil { // initialized in prod deployment, nil in tests + ctx = SetCoverageDBClient(r.Context(), coverageDBClient) + } targetDate := civil.DateOf(timeNow(ctx)).AddMonths(-1) periods, err := coveragedb.GenNPeriodsTill(2, targetDate, "month") if err != nil { @@ -133,7 +135,7 @@ func handleCoverageReports(w http.ResponseWriter, r *http.Request) { wg.Add(1) go func() { defer wg.Done() - if err := sendNsCoverageReport(ctx, nsName, emailTo, curHostPort, periods, minDrop); err != nil { + if err := sendNsCoverageReport(ctx, nsName, emailTo, periods, minDrop); err != nil { msg := fmt.Sprintf("error generating coverage report for ns '%s': %s", nsName, err.Error()) log.Errorf(ctx, "%s", msg) return @@ -143,7 +145,7 @@ func handleCoverageReports(w http.ResponseWriter, r *http.Request) { wg.Wait() } -func sendNsCoverageReport(ctx context.Context, ns, email, domain string, +func sendNsCoverageReport(ctx context.Context, ns, email string, period []coveragedb.TimePeriod, minDrop int) error { var days int for _, p := range period { @@ -169,7 +171,7 @@ func sendNsCoverageReport(ctx context.Context, ns, email, domain string, PeriodFromDays: period[0].Days, PeriodTo: periodTo, PeriodToDays: period[1].Days, - Link: fmt.Sprintf("https://%s%s", domain, + Link: fmt.Sprintf("%s%s", appURL(ctx), coveragePageLink(ns, period[1].Type, period[1].DateTo.String(), minDrop, 2, true)), Table: table, } diff --git a/dashboard/app/reporting_test.go b/dashboard/app/reporting_test.go index c5c95101d..44a040f11 100644 --- a/dashboard/app/reporting_test.go +++ b/dashboard/app/reporting_test.go @@ -1407,7 +1407,7 @@ func TestCoverageRegression(t *testing.T) { msg := <-c.emailSink assert.Equal(t, []string{"test@test.test"}, msg.To) assert.Equal(t, "coverage-tests coverage regression (November 1999)->(December 1999)", msg.Subject) - wantLink := "https:///coverage-tests/coverage?" + + wantLink := "https://testapp.appspot.com/coverage-tests/coverage?" + "dateto=1999-12-31&min-cover-lines-drop=1&order-by-cover-lines-drop=1&period=month&period_count=2" assert.Equal(t, `Regressions happened in 'coverage-tests' from November 1999 (30 days) to December 1999 (31 days). Web version: `+wantLink+` -- cgit mrf-deployment