Commit 6738637

mo khan <mo@mokhan.ca>
2016-06-23 03:17:40
fix tests.
1 parent e7dc5b6
app/controllers/training_sessions_controller.rb
@@ -16,9 +16,9 @@ class TrainingSessionsController < ApplicationController
     @workout.exercise_workouts.each do |exercise|
       @training_session.exercise_sessions.build(
         exercise_workout: exercise,
-        target_sets: exercise.sets,
-        target_repetitions: exercise.repetitions,
-        target_weight: current_user.next_weight_for(exercise.exercise)
+        #target_sets: exercise.sets,
+        #target_repetitions: exercise.repetitions,
+        #target_weight: current_user.next_weight_for(exercise.exercise)
       )
     end
   end
@@ -26,9 +26,9 @@ class TrainingSessionsController < ApplicationController
   def create
     secure_params = params.require(:training_session).permit(:workout_id, :body_weight, exercise_sessions_attributes: [
       :exercise_workout_id,
-      :target_repetitions,
-      :target_sets,
-      :target_weight,
+      #:target_repetitions,
+      #:target_sets,
+      #:target_weight,
     ])
     workout = Workout.find(secure_params[:workout_id])
     training_session = current_user.begin_workout(
@@ -45,15 +45,15 @@ class TrainingSessionsController < ApplicationController
   end
 
   def update
-    secure_params = params.
-      require(:training_session).
-      permit(:exercise_id, :weight, sets: [])
+    secure_params = params.require(:training_session).permit(:exercise_id, :weight, sets: [])
     @training_session = current_user.training_sessions.find(params[:id])
-    @training_session.train(
-      Exercise.find(secure_params[:exercise_id]),
-      secure_params[:weight],
-      secure_params[:sets]
-    )
+    secure_params[:sets].each do |reps|
+      @training_session.train(
+        Exercise.find(secure_params[:exercise_id]),
+        secure_params[:weight],
+        repetitions: reps,
+      )
+    end
   end
 
   def upload
app/views/training_sessions/_training_session.html.erb
@@ -6,7 +6,7 @@
   <td><%= training_session.body_weight %> lbs</td>
   <td>
   <% training_session.exercise_sessions.each do |exercise_session| %>
-    <strong><%= exercise_session.exercise.name %></strong> @ <%= exercise_session.target_weight %> lbs,
+    <strong><%= exercise_session.exercise.name %></strong> @ <%= exercise_session.sets.maximum(:target_weight) %> lbs,
   <% end %>
   </td>
   <td> <%= link_to "edit", edit_training_session_path(training_session) %> </td>
app/views/training_sessions/_training_session.jbuilder
@@ -1,7 +1,7 @@
 json.id training_session.id
 json.body_weight training_session.body_weight
 json.workout_name training_session.workout.name
-json.exercises training_session.exercise_sessions do |exercise|
+json.exercises training_session.exercise_sessions.order(:created_at) do |exercise|
   json.id exercise.exercise.id
   json.name exercise.name
   json.reps exercise.sets do |set|
db/schema.rb
@@ -26,9 +26,9 @@ ActiveRecord::Schema.define(version: 20160611171913) do
 
   create_table "exercise_sets", id: :uuid, default: "uuid_generate_v4()", force: :cascade do |t|
     t.uuid     "exercise_session_id", null: false
-    t.integer  "target_repetitions",  null: false
+    t.integer  "target_repetitions"
     t.integer  "actual_repetitions"
-    t.float    "target_weight",       null: false
+    t.float    "target_weight"
     t.datetime "created_at",          null: false
     t.datetime "updated_at",          null: false
   end
spec/controllers/training_sessions_controller_spec.rb
@@ -126,9 +126,9 @@ describe TrainingSessionsController do
         exercise_sessions_attributes: [
           {
             exercise_workout_id: workout_b.exercise_workouts.first.id,
-            target_repetitions: 4,
-            target_sets: 3,
-            target_weight: 275.0,
+            #target_repetitions: 4,
+            #target_sets: 3,
+            #target_weight: 275.0,
           }
         ]
       }
@@ -138,9 +138,10 @@ describe TrainingSessionsController do
       training_session = user.training_sessions.last
       expect(training_session.body_weight).to eql(body_weight.to_f)
       expect(training_session.exercise_sessions.count).to eql(1)
-      expect(training_session.exercise_sessions.first.target_sets).to eql(3)
-      expect(training_session.exercise_sessions.first.target_repetitions).to eql(4)
-      expect(training_session.exercise_sessions.first.target_weight).to eql(275.0)
+      exercise_session = training_session.exercise_sessions.first
+      #expect(exercise_session.target_sets).to eql(3)
+      #expect(exercise_session.target_repetitions).to eql(4)
+      #expect(exercise_session.target_weight).to eql(275.0)
       expect(response).to redirect_to(edit_training_session_path(user.training_sessions.last))
     end
   end
@@ -165,8 +166,8 @@ describe TrainingSessionsController do
         sets: [5, 5, 5],
       }
       expect(training_session.exercises).to include(squat)
-      expect(training_session.progress_for(squat).target_weight).to eql(315.to_f)
-      expect(training_session.progress_for(squat).actual_sets).to eql(['5', '5', '5'])
+      expect(training_session.progress_for(squat).sets.first.target_weight).to eql(315.to_f)
+      expect(training_session.progress_for(squat).to_sets).to eql([5, 5, 5])
     end
   end
 end