feat(store): persist garmin_connected_at, set once on first successful auth

This commit is contained in:
2026-07-26 12:21:42 +02:00
parent d1d2d612a5
commit 6a3f0201af
5 changed files with 103 additions and 5 deletions

View File

@@ -204,3 +204,31 @@ func TestIsolation_DeleteUserLeavesOtherUsersDataIntact(t *testing.T) {
t.Fatalf("userB's activities affected by deleting userA: len=%d err=%v", len(activitiesB), err)
}
}
// TestIsolation_MarkGarminConnectedNeverLeaksAcrossUsers confirms marking
// one user's Garmin connection never sets another user's flag.
func TestIsolation_MarkGarminConnectedNeverLeaksAcrossUsers(t *testing.T) {
db := openTestDB(t)
ctx := context.Background()
userA, err := db.ProvisionUser(ctx, "sub-a", "A")
if err != nil {
t.Fatalf("ProvisionUser(a): %v", err)
}
userB, err := db.ProvisionUser(ctx, "sub-b", "B")
if err != nil {
t.Fatalf("ProvisionUser(b): %v", err)
}
if err := db.MarkGarminConnected(ctx, userA); err != nil {
t.Fatalf("MarkGarminConnected(a): %v", err)
}
profileB, err := db.GetProfile(ctx, userB)
if err != nil {
t.Fatalf("GetProfile(b): %v", err)
}
if profileB.GarminConnectedAt != nil {
t.Fatal("userA's MarkGarminConnected call leaked into userB's profile")
}
}