aboutsummaryrefslogtreecommitdiff
path: root/rides
diff options
context:
space:
mode:
Diffstat (limited to 'rides')
-rw-r--r--rides/rides.go2
-rw-r--r--rides/rides_test.go17
2 files changed, 19 insertions, 0 deletions
diff --git a/rides/rides.go b/rides/rides.go
index b0ce5fb..94fbc64 100644
--- a/rides/rides.go
+++ b/rides/rides.go
@@ -37,6 +37,7 @@ const (
SortStartDate SortColumn = "started"
SortDistance SortColumn = "distance"
SortMovingTime SortColumn = "moving_time"
+ SortSpeed SortColumn = "speed"
SortElevation SortColumn = "elevation"
SortCotacol SortColumn = "cotacol"
SortCotacolKm SortColumn = "cotacol_100km"
@@ -156,6 +157,7 @@ var sortExpressions = map[SortColumn]string{
SortStartDate: "start_date",
SortDistance: "distance_m",
SortMovingTime: "CASE WHEN moving_time_algo_version = ? THEN COALESCE(moving_time_s, external_moving_time_s) ELSE external_moving_time_s END",
+ SortSpeed: "average_speed_mps",
SortElevation: "total_elevation_gain_m",
SortCotacol: "cotacol_score",
SortCotacolKm: "cotacol_score * 100000.0 / NULLIF(distance_m, 0)",
diff --git a/rides/rides_test.go b/rides/rides_test.go
index fc8ff0d..ea87172 100644
--- a/rides/rides_test.go
+++ b/rides/rides_test.go
@@ -162,6 +162,23 @@ func TestListSortedByMovingTimeUsesCanonicalWithExternalFallback(t *testing.T) {
assert.Equal(t, first.ExternalID, items[1].ExternalID)
}
+func TestListSortedBySpeed(t *testing.T) {
+ db := newTestDB(t)
+ slow := sampleRide(t)
+ slow.ExternalID = "strava:550e8400-e29b-41d4-a716-446655440000"
+ slow.AverageSpeedMps = 4.2
+ fast := sampleRide(t)
+ fast.ExternalID = "strava:6ba7b810-9dad-41d1-80b4-00c04fd430c8"
+ fast.AverageSpeedMps = 9.8
+ require.NoError(t, Save(db, slow))
+ require.NoError(t, Save(db, fast))
+
+ items, err := ListSorted(db, SortSpeed, false)
+ require.NoError(t, err)
+ assert.Equal(t, slow.ExternalID, items[0].ExternalID)
+ assert.Equal(t, fast.ExternalID, items[1].ExternalID)
+}
+
func TestBackfill(t *testing.T) {
db := newTestDB(t)
require.NoError(t, Save(db, sampleRide(t)))