Commit e7dc5b6
Changed files (6)
spec
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