diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-21 19:30:50 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-21 19:30:50 +0200 |
| commit | ed9516cbcb3c5254980a9e1dba7d8fa5ea230b35 (patch) | |
| tree | 36d70fc6e76a74c30d0e3b166fd3c00f88363700 /web/server_test.go | |
| parent | 72cc720e91e531fda3da073a8231951e0cccb696 (diff) | |
Add distance filter to analytics and go fix to the check gate
Diffstat (limited to 'web/server_test.go')
| -rw-r--r-- | web/server_test.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/web/server_test.go b/web/server_test.go index 42b85b1..0514dfc 100644 --- a/web/server_test.go +++ b/web/server_test.go @@ -390,6 +390,47 @@ func TestHandlerRendersAnalyticsChart(t *testing.T) { assert.Contains(t, body, `href="/analytics"`) } +func TestHandlerFiltersAnalyticsByDistance(t *testing.T) { + server, db := newWebTestServer(t) + short := rides.Ride{ + ExternalID: "strava:550e8400-e29b-41d4-a716-446655440003", + Name: "Short Ride", + Type: "Ride", + StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC), + DistanceM: 40_000, + } + long := rides.Ride{ + ExternalID: "strava:550e8400-e29b-41d4-a716-446655440004", + Name: "Long Ride", + Type: "Ride", + StartDate: time.Date(2026, 8, 2, 7, 0, 0, 0, time.UTC), + DistanceM: 100_000, + } + require.NoError(t, rides.Save(db, short)) + require.NoError(t, rides.Save(db, long)) + _, err := db.Exec(` + UPDATE rides + SET cotacol_score = CASE external_id WHEN ? THEN 20 ELSE 120 END, + cotacol_algo_version = ?, + average_speed_mps = CASE external_id WHEN ? THEN 7.0 ELSE 5.0 END + `, short.ExternalID, ride.CotacolAlgorithmVersion, long.ExternalID) + require.NoError(t, err) + + req := httptest.NewRequest(http.MethodGet, "/analytics?distance_min=60", nil) + response := httptest.NewRecorder() + server.Handler().ServeHTTP(response, req) + + body := response.Body.String() + assert.Equal(t, http.StatusOK, response.Code) + assert.Contains(t, body, `id="analytics-chart"`) + assert.Contains(t, body, `id="analytics-points"`) + assert.Contains(t, body, `"cotacolPer100Km":120`) + assert.NotContains(t, body, `"cotacolPer100Km":50`) + assert.Contains(t, body, `name="distance_min"`) + assert.Contains(t, body, `href="/analytics"`) + assert.Contains(t, body, `data-analytics-count`) +} + func TestHandlerReturnsNotFoundForUnknownRide(t *testing.T) { server, _ := newWebTestServer(t) req := httptest.NewRequest(http.MethodGet, "/rides/999999", nil) |
