aboutsummaryrefslogtreecommitdiff
path: root/web/server_test.go
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-08-24 09:27:29 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-08-24 09:27:29 +0200
commit8b921624666141c09cf20e2e0ee3cbe260a6412d (patch)
tree7f708dfe7807dda1f54e4d010d58858d5e7c5999 /web/server_test.go
parent34b8ae8f4c16b86281aa578e8f6891fca3666d37 (diff)
Add type filtering, drop hard-coded filters and route filter, tune backtest
Diffstat (limited to 'web/server_test.go')
-rw-r--r--web/server_test.go30
1 files changed, 29 insertions, 1 deletions
diff --git a/web/server_test.go b/web/server_test.go
index ebedcd6..b3f6028 100644
--- a/web/server_test.go
+++ b/web/server_test.go
@@ -77,6 +77,8 @@ func TestHandlerRendersRidesPage(t *testing.T) {
GPXPath: testGPXPath(t, "long.gpx"),
Name: "Long Ride",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC),
DistanceM: 20_000,
}))
@@ -85,6 +87,8 @@ func TestHandlerRendersRidesPage(t *testing.T) {
GPXPath: testGPXPath(t, "short.gpx"),
Name: "Short Ride",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 2, 7, 0, 0, 0, time.UTC),
DistanceM: 9_999,
}))
@@ -97,7 +101,7 @@ func TestHandlerRendersRidesPage(t *testing.T) {
assert.NotContains(t, response.Body.String(), "All rides")
assert.NotContains(t, response.Body.String(), "Your imported rides, ready for climb analysis.")
assert.Contains(t, response.Body.String(), "Long Ride")
- assert.NotContains(t, response.Body.String(), "Short Ride")
+ assert.Contains(t, response.Body.String(), "Short Ride")
assert.Contains(t, response.Body.String(), "Cotacol")
assert.Contains(t, response.Body.String(), "Cotacol / 100 km")
assert.Contains(t, response.Body.String(), `href="/rides/1"`)
@@ -110,6 +114,8 @@ func TestHandlerRendersRideDetailWithEmbeddedRoute(t *testing.T) {
GPXPath: testGPXPath(t, "detail.gpx"),
Name: "Detailed Ride",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC),
DistanceM: 20_000,
}))
@@ -272,6 +278,8 @@ func TestHandlerCreatesOfficialClimbFromRoutePoints(t *testing.T) {
GPXPath: routePath,
Name: "Climb Candidate",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC),
DistanceM: 2_000,
}))
@@ -328,6 +336,8 @@ func TestHandlerRendersRideDetailWithoutRoute(t *testing.T) {
ExternalID: "strava:14701658670",
Name: "Indoor Ride",
Type: "VirtualRide",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC),
DistanceM: 20_000,
}
@@ -353,6 +363,8 @@ func TestHandlerRendersAnalyticsChart(t *testing.T) {
ExternalID: "strava:550e8400-e29b-41d4-a716-446655440001",
Name: "Fastish Ride",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC),
DistanceM: 40_000,
}
@@ -360,6 +372,8 @@ func TestHandlerRendersAnalyticsChart(t *testing.T) {
ExternalID: "strava:550e8400-e29b-41d4-a716-446655440002",
Name: "Climbing Ride",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 2, 7, 0, 0, 0, time.UTC),
DistanceM: 40_000,
}
@@ -395,6 +409,8 @@ func TestHandlerFiltersAnalyticsByDistance(t *testing.T) {
ExternalID: "strava:550e8400-e29b-41d4-a716-446655440003",
Name: "Short Ride",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC),
DistanceM: 40_000,
}
@@ -402,6 +418,8 @@ func TestHandlerFiltersAnalyticsByDistance(t *testing.T) {
ExternalID: "strava:550e8400-e29b-41d4-a716-446655440004",
Name: "Long Ride",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 2, 7, 0, 0, 0, time.UTC),
DistanceM: 100_000,
}
@@ -716,6 +734,8 @@ func TestBuildRideViewsUsesStoredCotacol(t *testing.T) {
GPXPath: testGPXPath(t, "stored.gpx"),
Name: "Stored Ride",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC),
DistanceM: 20_000,
}
@@ -756,6 +776,8 @@ func TestHandlerSortsRidesByDistance(t *testing.T) {
GPXPath: testGPXPath(t, "near.gpx"),
Name: "Near Ride",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC),
DistanceM: 20_000,
}))
@@ -764,6 +786,8 @@ func TestHandlerSortsRidesByDistance(t *testing.T) {
GPXPath: testGPXPath(t, "far.gpx"),
Name: "Far Ride",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 2, 7, 0, 0, 0, time.UTC),
DistanceM: 40_000,
}))
@@ -785,6 +809,8 @@ func TestHandlerSortsRidesByCotacol(t *testing.T) {
GPXPath: testGPXPath(t, "first.gpx"),
Name: "Low Cotacol",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC),
DistanceM: 20_000,
}
@@ -793,6 +819,8 @@ func TestHandlerSortsRidesByCotacol(t *testing.T) {
GPXPath: testGPXPath(t, "second.gpx"),
Name: "High Cotacol",
Type: "Ride",
+ BikeType: ride.BikeTypeRoad,
+ RideType: ride.RideTypeTraining,
StartDate: time.Date(2026, 8, 2, 7, 0, 0, 0, time.UTC),
DistanceM: 40_000,
}