Commit b370729
Changed files (3)
app
models
spec
models
app/models/training_session.rb
@@ -11,4 +11,10 @@ class TrainingSession < ActiveRecord::Base
sets: completed_sets
)
end
+
+ def progress_for(exercise)
+ exercise_sessions.
+ joins(:exercise_workout => :exercise).
+ find_by(exercise_workouts: {exercise_id: exercise.id})
+ end
end
spec/models/android/import_spec.rb
@@ -38,8 +38,8 @@ describe Android::Import do
subject.import_from(directory)
training_session = user.training_sessions.order(:occurred_at).first
- squat_session = training_session.exercise_sessions.
- find_by(exercise_workout: squat_workout)
+ squat_session = training_session.progress_for(squat)
+
expect(squat_session.target_weight).to eql(45.0)
expect(squat_session.sets[0]).to eql("5")
expect(squat_session.sets[1]).to eql("5")
@@ -52,8 +52,7 @@ describe Android::Import do
subject.import_from(directory)
training_session = user.training_sessions.order(:occurred_at).first
- bench_session = training_session.exercise_sessions.
- find_by(exercise_workout: bench_workout)
+ bench_session = training_session.progress_for(bench_press)
expect(bench_session.target_weight).to eql(65.0)
expect(bench_session.sets[0]).to eql("5")
expect(bench_session.sets[1]).to eql("5")
@@ -66,8 +65,7 @@ describe Android::Import do
subject.import_from(directory)
training_session = user.training_sessions.order(:occurred_at).first
- row_session = training_session.exercise_sessions.
- find_by(exercise_workout: row_workout)
+ row_session = training_session.progress_for(barbell_row)
expect(row_session.target_weight).to eql(65.0)
expect(row_session.sets[0]).to eql("5")
expect(row_session.sets[1]).to eql("5")
spec/models/training_session_spec.rb
@@ -1,8 +1,9 @@
require "rails_helper"
describe TrainingSession, type: :model do
+ subject { create(:training_session) }
+
describe "#train" do
- subject { create(:training_session) }
let(:workout) { subject.workout }
let(:sets) { [5, 5, 5, 5, 5] }
let(:target_weight) { 200 }
@@ -20,4 +21,21 @@ describe TrainingSession, type: :model do
expect(result.sets).to eql(sets.map { |x| x.to_s })
end
end
+
+ describe "#progress_for" do
+ let(:exercise) { create(:exercise) }
+ let(:workout) { subject.workout }
+
+ before :each do
+ workout.add_exercise(exercise)
+ subject.train(exercise, 100, [5, 5])
+ end
+
+ it "returns the progress for the specific exercise" do
+ result = subject.progress_for(exercise)
+ expect(result.exercise).to eql(exercise)
+ expect(result.sets).to eql(["5", "5"])
+ expect(result.target_weight).to eql(100.0)
+ end
+ end
end