Commit 7c9074a

mo khan <mo@mokhan.ca>
2015-06-23 01:57:21
destroy dependent exercise sessions when removing a training session.
1 parent 17831a9
Changed files (2)
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
+  has_many :exercise_sessions, dependent: :destroy
 
   def train(exercise, target_weight, completed_sets)
     recommendation = workout.exercise_workouts.find_by(exercise: exercise)
spec/models/user_spec.rb
@@ -176,4 +176,19 @@ describe User do
       expect(result.user).to eql(subject)
     end
   end
+
+  describe "when destroying a training session" do
+    include_context "stronglifts_program"
+    subject { create(:user) }
+
+    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])
+
+      subject.training_sessions.destroy_all
+
+      expect(TrainingSession.all).to be_empty
+      expect(ExerciseSession.all).to be_empty
+    end
+  end
 end