Commit 2e0fad5

mo khan <mo@mokhan.ca>
2015-05-31 16:20:28
add specs for generating training history line chart.
1 parent 72f5f27
Changed files (2)
app/models/training_history.rb
@@ -14,7 +14,7 @@ class TrainingHistory
       joins(:exercise).
       where(exercises: { name: exercise.name }).
       inject({}) do |memo, session|
-        memo[session.training_session.occurred_at] = session.target_weight
+        memo[session.training_session.occurred_at.to_i] = session.target_weight
         memo
       end
   end
spec/models/training_history_spec.rb
@@ -6,22 +6,19 @@ describe TrainingHistory do
   let(:user) { create(:user) }
 
   describe "#to_line_chart" do
-    before :each do
-      workout_a.exercise_workouts.each do |recommendation|
-        user.exercise_sessions.create!(
-          target_weight: 200,
-          exercise_workout: recommendation,
-          sets: [5,5,5,5,5]
-        )
+    let(:date) { DateTime.now.utc }
+    let(:target_weight) { rand(300) }
+    let(:body_weight) { 210 }
 
-        session = user.begin(workout_a)
-        session.train(squat, 200, [5,5,5,5,5])
-      end
+    before :each do
+      session = user.begin_workout(workout_a, date, body_weight)
+      session.train(squat, target_weight, [5,5,5,5,5])
     end
 
     it "returns the history in the format required for the chart" do
       result = subject.to_line_chart
       expect(result).to_not be_nil
+      expect(result[date.to_i]).to eql(target_weight.to_f)
     end
   end
 end