feat(store): persist garmin_connected_at, set once on first successful auth
This commit is contained in:
@@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user