aboutsummaryrefslogtreecommitdiff
path: root/strava/sync_test.go
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-08-27 19:03:34 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-08-27 19:03:34 +0200
commitd7b93325d4f70eeab369fa8a3c4cce9f0c4e0081 (patch)
tree76a913248fa04325e8e85f34df0cd03654e1ca76 /strava/sync_test.go
parent558f755f5746a4ee819de87579951b7533688e5d (diff)
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.
Diffstat (limited to 'strava/sync_test.go')
-rw-r--r--strava/sync_test.go17
1 files changed, 15 insertions, 2 deletions
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")