From d7b93325d4f70eeab369fa8a3c4cce9f0c4e0081 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Thu, 27 Aug 2026 19:03:34 +0200 Subject: Add dual GPX/FIT exporter and backfill for rides Phase 1 writes both .gpx and .fit on Strava import, adds fit_path column, renames storage.gpx_dir to storage.rides_dir, and backfills missing FIT files from existing GPX without breaking CLI progress. FIT files are gitignored. --- strava/sync_test.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'strava/sync_test.go') diff --git a/strava/sync_test.go b/strava/sync_test.go index abc3d0e..6d28e47 100644 --- a/strava/sync_test.go +++ b/strava/sync_test.go @@ -70,12 +70,13 @@ func TestGet(t *testing.T) { } }) - activity, gpxData, err := client.Get(42) + activity, gpxData, fitData, err := client.Get(42) require.NoError(t, err) assert.Equal(t, int64(42), activity.ID) assert.Equal(t, 42195.0, activity.DistanceM) assert.Equal(t, int64(7200), activity.MovingTimeS) assert.NotEmpty(t, gpxData) + assert.NotEmpty(t, fitData) parsed, err := gpx.ParseBytes(gpxData) require.NoError(t, err) require.Len(t, parsed.Tracks[0].Segments[0].Points, 2) @@ -113,6 +114,18 @@ func TestGet(t *testing.T) { require.True(t, ok) powerValue := powers[1] assert.Equal(t, 0.0, powerValue) + + parsedFIT, err := (ride.FITRideParser{}).Parse(bytes.NewReader(fitData)) + require.NoError(t, err) + assert.Equal(t, 2, parsedFIT.Len()) + heartRates, ok = parsedFIT.HeartRates() + require.True(t, ok) + assert.Equal(t, 91.0, heartRates[1]) + _, ok = parsedFIT.Cadences() + assert.False(t, ok) + powers, ok = parsedFIT.Powers() + require.True(t, ok) + assert.Equal(t, 0.0, powers[1]) } func TestGetRejectsActivityWithoutTrackPoints(t *testing.T) { @@ -130,7 +143,7 @@ func TestGetRejectsActivityWithoutTrackPoints(t *testing.T) { } }) - activity, _, err := client.Get(14701658670) + activity, _, _, err := client.Get(14701658670) assert.Equal(t, int64(14701658670), activity.ID) require.EqualError(t, err, "activity has no track points") -- cgit v1.3