diff options
Diffstat (limited to 'web/server_test.go')
| -rw-r--r-- | web/server_test.go | 71 |
1 files changed, 35 insertions, 36 deletions
diff --git a/web/server_test.go b/web/server_test.go index 0514dfc..ebedcd6 100644 --- a/web/server_test.go +++ b/web/server_test.go @@ -20,7 +20,6 @@ import ( "github.com/martinlehoux/biking_home/mountain_pass" "github.com/martinlehoux/biking_home/official_climb" "github.com/martinlehoux/biking_home/ride" - "github.com/martinlehoux/biking_home/rides" "github.com/martinlehoux/biking_home/strava" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -73,7 +72,7 @@ const officialClimbTrackGPX = `<?xml version="1.0"?><gpx xmlns="http://www.topog func TestHandlerRendersRidesPage(t *testing.T) { server, db := newWebTestServer(t) - require.NoError(t, rides.Save(db, rides.Ride{ + require.NoError(t, ride.Save(db, ride.StoredRide{ ExternalID: "strava:1234", GPXPath: testGPXPath(t, "long.gpx"), Name: "Long Ride", @@ -81,7 +80,7 @@ func TestHandlerRendersRidesPage(t *testing.T) { StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC), DistanceM: 20_000, })) - require.NoError(t, rides.Save(db, rides.Ride{ + require.NoError(t, ride.Save(db, ride.StoredRide{ ExternalID: "strava:5678", GPXPath: testGPXPath(t, "short.gpx"), Name: "Short Ride", @@ -106,7 +105,7 @@ func TestHandlerRendersRidesPage(t *testing.T) { func TestHandlerRendersRideDetailWithEmbeddedRoute(t *testing.T) { server, db := newWebTestServer(t) - require.NoError(t, rides.Save(db, rides.Ride{ + require.NoError(t, ride.Save(db, ride.StoredRide{ ExternalID: "strava:550e8400-e29b-41d4-a716-446655440000", GPXPath: testGPXPath(t, "detail.gpx"), Name: "Detailed Ride", @@ -122,7 +121,7 @@ func TestHandlerRendersRideDetailWithEmbeddedRoute(t *testing.T) { 2, "Distant pass", 500, 43.2, 5.2, ) require.NoError(t, err) - item, found, err := rides.GetByExternalID(db, "strava:550e8400-e29b-41d4-a716-446655440000") + item, found, err := ride.GetByExternalID(db, "strava:550e8400-e29b-41d4-a716-446655440000") require.NoError(t, err) require.True(t, found) @@ -268,7 +267,7 @@ func TestHandlerCreatesOfficialClimbFromRoutePoints(t *testing.T) { server, db := newWebTestServer(t) routePath := filepath.Join(t.TempDir(), "official-climb.gpx") require.NoError(t, os.WriteFile(routePath, []byte(officialClimbTrackGPX), 0o600)) - require.NoError(t, rides.Save(db, rides.Ride{ + require.NoError(t, ride.Save(db, ride.StoredRide{ ExternalID: "strava:550e8400-e29b-41d4-a716-446655440000", GPXPath: routePath, Name: "Climb Candidate", @@ -276,7 +275,7 @@ func TestHandlerCreatesOfficialClimbFromRoutePoints(t *testing.T) { StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC), DistanceM: 2_000, })) - item, found, err := rides.GetByExternalID(db, "strava:550e8400-e29b-41d4-a716-446655440000") + item, found, err := ride.GetByExternalID(db, "strava:550e8400-e29b-41d4-a716-446655440000") require.NoError(t, err) require.True(t, found) @@ -325,15 +324,15 @@ func TestHandlerCreatesOfficialClimbFromRoutePoints(t *testing.T) { func TestHandlerRendersRideDetailWithoutRoute(t *testing.T) { server, db := newWebTestServer(t) - item := rides.Ride{ + item := ride.StoredRide{ ExternalID: "strava:14701658670", Name: "Indoor Ride", Type: "VirtualRide", StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC), DistanceM: 20_000, } - require.NoError(t, rides.Save(db, item)) - stored, found, err := rides.GetByExternalID(db, item.ExternalID) + require.NoError(t, ride.Save(db, item)) + stored, found, err := ride.GetByExternalID(db, item.ExternalID) require.NoError(t, err) require.True(t, found) @@ -350,22 +349,22 @@ func TestHandlerRendersRideDetailWithoutRoute(t *testing.T) { func TestHandlerRendersAnalyticsChart(t *testing.T) { server, db := newWebTestServer(t) - first := rides.Ride{ + first := ride.StoredRide{ ExternalID: "strava:550e8400-e29b-41d4-a716-446655440001", Name: "Fastish Ride", Type: "Ride", StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC), DistanceM: 40_000, } - second := rides.Ride{ + second := ride.StoredRide{ ExternalID: "strava:550e8400-e29b-41d4-a716-446655440002", Name: "Climbing Ride", Type: "Ride", StartDate: time.Date(2026, 8, 2, 7, 0, 0, 0, time.UTC), DistanceM: 40_000, } - require.NoError(t, rides.Save(db, first)) - require.NoError(t, rides.Save(db, second)) + require.NoError(t, ride.Save(db, first)) + require.NoError(t, ride.Save(db, second)) _, err := db.Exec(` UPDATE rides SET cotacol_score = CASE external_id WHEN ? THEN 20 ELSE 120 END, @@ -392,22 +391,22 @@ func TestHandlerRendersAnalyticsChart(t *testing.T) { func TestHandlerFiltersAnalyticsByDistance(t *testing.T) { server, db := newWebTestServer(t) - short := rides.Ride{ + short := ride.StoredRide{ 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{ + long := ride.StoredRide{ 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)) + require.NoError(t, ride.Save(db, short)) + require.NoError(t, ride.Save(db, long)) _, err := db.Exec(` UPDATE rides SET cotacol_score = CASE external_id WHEN ? THEN 20 ELSE 120 END, @@ -448,7 +447,7 @@ func TestHandlerShowsErrorForUnavailableRideRoute(t *testing.T) { VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) `, "strava:6ba7b810-9dad-41d1-80b4-00c04fd430c8", "missing.gpx", "Unavailable Route", "Ride", "2026-08-01T07:00:00Z", 20_000, 0, 0, 0, 0) require.NoError(t, err) - item, found, err := rides.GetByExternalID(db, "strava:6ba7b810-9dad-41d1-80b4-00c04fd430c8") + item, found, err := ride.GetByExternalID(db, "strava:6ba7b810-9dad-41d1-80b4-00c04fd430c8") require.NoError(t, err) require.True(t, found) @@ -567,10 +566,10 @@ func TestSyncRidesContinuesAfterInvalidActivity(t *testing.T) { require.NoError(t, err) assert.Equal(t, SyncProgress{Total: 2, Completed: 2, Imported: 1, Skipped: 1}, progress) assert.Len(t, updates, 3) - _, found, err := rides.GetByExternalID(db, "strava:14701658670") + _, found, err := ride.GetByExternalID(db, "strava:14701658670") require.NoError(t, err) assert.False(t, found) - _, found, err = rides.GetByExternalID(db, "strava:14701658671") + _, found, err = ride.GetByExternalID(db, "strava:14701658671") require.NoError(t, err) assert.True(t, found) assert.NoFileExists(t, filepath.Join(gpxDir, "activity_14701658670.gpx")) @@ -599,14 +598,14 @@ func TestSyncRidesSavesActivityWithoutRoute(t *testing.T) { require.NoError(t, err) assert.Equal(t, SyncProgress{Total: 2, Completed: 2, Imported: 2}, progress) - indoor, found, err := rides.GetByExternalID(db, "strava:14701658670") + indoor, found, err := ride.GetByExternalID(db, "strava:14701658670") require.NoError(t, err) require.True(t, found) assert.Empty(t, indoor.GPXPath) _, ready := indoor.CotacolScore() assert.False(t, ready) assert.NoFileExists(t, staleGPXPath) - _, found, err = rides.GetByExternalID(db, "strava:14701658671") + _, found, err = ride.GetByExternalID(db, "strava:14701658671") require.NoError(t, err) assert.True(t, found) } @@ -712,7 +711,7 @@ func TestRideSortHeadersToggleDirection(t *testing.T) { func TestBuildRideViewsUsesStoredCotacol(t *testing.T) { _, db := newWebTestServer(t) - ride := rides.Ride{ + stored := ride.StoredRide{ ExternalID: "strava:550e8400-e29b-41d4-a716-446655440000", GPXPath: testGPXPath(t, "stored.gpx"), Name: "Stored Ride", @@ -720,10 +719,10 @@ func TestBuildRideViewsUsesStoredCotacol(t *testing.T) { StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC), DistanceM: 20_000, } - require.NoError(t, rides.Save(db, ride)) - _, err := db.Exec("UPDATE rides SET gpx_path = ? WHERE external_id = ?", "missing.gpx", ride.ExternalID) + require.NoError(t, ride.Save(db, stored)) + _, err := db.Exec("UPDATE rides SET gpx_path = ? WHERE external_id = ?", "missing.gpx", stored.ExternalID) require.NoError(t, err) - items, err := rides.List(db) + items, err := ride.List(db) require.NoError(t, err) views := buildRideViews(items) @@ -733,7 +732,7 @@ func TestBuildRideViewsUsesStoredCotacol(t *testing.T) { func TestBuildRideViewMovingTimePrefersCanonical(t *testing.T) { _, db := newWebTestServer(t) - ride := rides.Ride{ + stored := ride.StoredRide{ ExternalID: "strava:550e8400-e29b-41d4-a716-446655440000", GPXPath: testGPXPath(t, "moving.gpx"), Name: "Moving Ride", @@ -742,8 +741,8 @@ func TestBuildRideViewMovingTimePrefersCanonical(t *testing.T) { DistanceM: 20_000, ExternalMovingTimeS: 7_200, } - require.NoError(t, rides.Save(db, ride)) - items, err := rides.List(db) + require.NoError(t, ride.Save(db, stored)) + items, err := ride.List(db) require.NoError(t, err) require.Len(t, items, 1) @@ -752,7 +751,7 @@ func TestBuildRideViewMovingTimePrefersCanonical(t *testing.T) { func TestHandlerSortsRidesByDistance(t *testing.T) { server, db := newWebTestServer(t) - require.NoError(t, rides.Save(db, rides.Ride{ + require.NoError(t, ride.Save(db, ride.StoredRide{ ExternalID: "strava:550e8400-e29b-41d4-a716-446655440000", GPXPath: testGPXPath(t, "near.gpx"), Name: "Near Ride", @@ -760,7 +759,7 @@ func TestHandlerSortsRidesByDistance(t *testing.T) { StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC), DistanceM: 20_000, })) - require.NoError(t, rides.Save(db, rides.Ride{ + require.NoError(t, ride.Save(db, ride.StoredRide{ ExternalID: "strava:6ba7b810-9dad-41d1-80b4-00c04fd430c8", GPXPath: testGPXPath(t, "far.gpx"), Name: "Far Ride", @@ -781,7 +780,7 @@ func TestHandlerSortsRidesByDistance(t *testing.T) { func TestHandlerSortsRidesByCotacol(t *testing.T) { server, db := newWebTestServer(t) - first := rides.Ride{ + first := ride.StoredRide{ ExternalID: "strava:550e8400-e29b-41d4-a716-446655440000", GPXPath: testGPXPath(t, "first.gpx"), Name: "Low Cotacol", @@ -789,7 +788,7 @@ func TestHandlerSortsRidesByCotacol(t *testing.T) { StartDate: time.Date(2026, 8, 1, 7, 0, 0, 0, time.UTC), DistanceM: 20_000, } - second := rides.Ride{ + second := ride.StoredRide{ ExternalID: "strava:6ba7b810-9dad-41d1-80b4-00c04fd430c8", GPXPath: testGPXPath(t, "second.gpx"), Name: "High Cotacol", @@ -797,8 +796,8 @@ func TestHandlerSortsRidesByCotacol(t *testing.T) { StartDate: time.Date(2026, 8, 2, 7, 0, 0, 0, time.UTC), DistanceM: 40_000, } - require.NoError(t, rides.Save(db, first)) - require.NoError(t, rides.Save(db, second)) + require.NoError(t, ride.Save(db, first)) + require.NoError(t, ride.Save(db, second)) _, err := db.Exec(` UPDATE rides SET cotacol_score = CASE external_id WHEN ? THEN 1 ELSE 4 END |
