Commit e7dc5b6

mo khan <mo@mokhan.ca>
2016-06-11 22:55:25
fix broken specs.
1 parent 9fe362d
app/models/exercise_session.rb
@@ -2,7 +2,7 @@ class ExerciseSession < ActiveRecord::Base
   belongs_to :training_session
   belongs_to :exercise_workout
   has_one :exercise, through: :exercise_workout
-  has_many :exercise_sets, -> { order(:created_at) }, dependent: :destroy
+  has_many :exercise_sets, dependent: :destroy
   delegate :name, to: :exercise
 
   def sets
app/models/training_history.rb
@@ -8,10 +8,10 @@ class TrainingHistory
   end
 
   def personal_record
-    user.
-      exercise_sessions.
+    user.exercise_sets.
       joins(:exercise).
-      where(exercises: { name: exercise.name }).
+      where(exercises: { id: exercise.id }).
+      where('actual_repetitions = target_repetitions').
       maximum(:target_weight)
   end
 
app/models/training_session.rb
@@ -2,7 +2,7 @@ class TrainingSession < ActiveRecord::Base
   belongs_to :user
   belongs_to :workout
   has_one :program, through: :workout
-  has_many :exercise_sessions, -> { order(:created_at) }, dependent: :destroy
+  has_many :exercise_sessions, dependent: :destroy
   has_many :exercises, through: :exercise_sessions
   accepts_nested_attributes_for :exercise_sessions
 
app/models/user.rb
@@ -3,6 +3,7 @@ class User < ActiveRecord::Base
   has_secure_password
   has_many :training_sessions
   has_many :exercise_sessions, through: :training_sessions
+  has_many :exercise_sets, through: :exercise_sessions
   has_many :user_sessions, dependent: :destroy
   has_one :profile
   has_many :received_emails
spec/models/training_history_spec.rb
@@ -12,7 +12,9 @@ describe TrainingHistory do
 
     before :each do
       session = user.begin_workout(workout_a, date, body_weight)
-      session.train(squat, target_weight, [5, 5, 5, 5, 5])
+      5.times do
+        session.train(squat, target_weight, repetitions: 5)
+      end
     end
 
     it "returns the history in the format required for the chart" do
@@ -33,7 +35,9 @@ describe TrainingHistory do
     describe "when the exercise has been performed at least once" do
       it "returns true" do
         session = user.begin_workout(workout_a, DateTime.now, 225)
-        session.train(squat, 310, [5, 5, 5])
+        3.times do
+          session.train(squat, 310, repetitions: 5)
+        end
         expect(subject.completed_any?).to be_truthy
       end
     end
spec/models/user_spec.rb
@@ -118,13 +118,11 @@ describe User do
         workout: workout_a,
         occurred_at: DateTime.now.utc
       )
-      1.upto(5) do |n|
-        training_session.exercise_sessions.create!(
-          target_weight: (200 + n),
-          exercise_workout: exercise_workout,
-          actual_sets: [5, 5, 5, 5, 5]
-        )
-      end
+      training_session.train(squat, 201, repetitions: exercise_workout.repetitions)
+      training_session.train(squat, 202, repetitions: exercise_workout.repetitions)
+      training_session.train(squat, 210, repetitions: exercise_workout.repetitions - 1)
+      training_session.train(squat, 204, repetitions: exercise_workout.repetitions)
+      training_session.train(squat, 205, repetitions: exercise_workout.repetitions)
     end
 
     it "returns the users maximum amount of weight lifted" do
@@ -173,7 +171,11 @@ describe User do
 
     it "removes all the associations" do
       training_session = subject.begin_workout(workout_a, Date.today, 200)
-      training_session.train(squat, 200, [5, 5, 5, 5, 5])
+      training_session.train(squat, 200, repetitions: 5)
+      training_session.train(squat, 200, repetitions: 5)
+      training_session.train(squat, 200, repetitions: 5)
+      training_session.train(squat, 200, repetitions: 5)
+      training_session.train(squat, 200, repetitions: 5)
 
       subject.training_sessions.destroy_all