aboutsummaryrefslogtreecommitdiff
path: root/web/server_test.go
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-08-21 19:30:50 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-08-21 19:30:50 +0200
commited9516cbcb3c5254980a9e1dba7d8fa5ea230b35 (patch)
tree36d70fc6e76a74c30d0e3b166fd3c00f88363700 /web/server_test.go
parent72cc720e91e531fda3da073a8231951e0cccb696 (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.go41
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)