package store import ( "context" "testing" ) func TestWorkoutTypePaces_SeededOnePerKindThenUpdate(t *testing.T) { db := openTestDB(t) ctx := context.Background() all, err := db.ListWorkoutTypePaces(ctx) if err != nil { t.Fatalf("ListWorkoutTypePaces: %v", err) } if len(all) != 8 { t.Fatalf("expected 8 seeded pace rows (one per taxonomy kind), got %d", len(all)) } for _, p := range all { if p.PaceMinSecPerKm != nil || p.PaceMaxSecPerKm != nil || p.HRMinPctHRR != nil || p.HRMaxPctHRR != nil { t.Errorf("expected all-nil seeded pace row for kind %d, got %+v", p.WorkoutKindID, p) } } target := all[0] minPace, maxPace, hrMin, hrMax := 330.0, 420.0, 70.0, 80.0 target.PaceMinSecPerKm = &minPace target.PaceMaxSecPerKm = &maxPace target.HRMinPctHRR = &hrMin target.HRMaxPctHRR = &hrMax if err := db.UpdateWorkoutTypePace(ctx, target); err != nil { t.Fatalf("UpdateWorkoutTypePace: %v", err) } got, err := db.GetWorkoutTypePace(ctx, target.WorkoutKindID) if err != nil { t.Fatalf("GetWorkoutTypePace: %v", err) } if got.PaceMinSecPerKm == nil || *got.PaceMinSecPerKm != 330 { t.Errorf("PaceMinSecPerKm = %v, want 330", got.PaceMinSecPerKm) } if got.HRMinPctHRR == nil || *got.HRMinPctHRR != 70 { t.Errorf("HRMinPctHRR = %v, want 70", got.HRMinPctHRR) } if got.HRMaxPctHRR == nil || *got.HRMaxPctHRR != 80 { t.Errorf("HRMaxPctHRR = %v, want 80", got.HRMaxPctHRR) } }