Commit 2fb26e0
Changed files (3)
app/models/workout.rb
@@ -20,6 +20,6 @@ class Workout < ActiveRecord::Base
exercise: exercise,
sets: sets,
repetitions: repetitions
- )
+ ) unless exercises.include?(exercise)
end
end
db/seeds.rb
@@ -1,18 +1,22 @@
# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
-program = Program.create!(name: Program::STRONG_LIFTS)
-squat = Exercise.create!(name: "Squat")
-bench_press = Exercise.create!(name: "Bench Press")
-barbell_row = Exercise.create!(name: "Barbell Row")
-overhead_press = Exercise.create!(name: "Overhead Press")
-deadlift = Exercise.create!(name: "Deadlift")
+program = Program.find_or_create_by!(name: Program::STRONG_LIFTS)
+squat = Exercise.find_or_create_by!(name: "Squat")
+bench_press = Exercise.find_or_create_by!(name: "Bench Press")
+barbell_row = Exercise.find_or_create_by!(name: "Barbell Row")
+overhead_press = Exercise.find_or_create_by!(name: "Overhead Press")
+deadlift = Exercise.find_or_create_by!(name: "Deadlift")
+dips = Exercise.find_or_create_by!(name: "Dips")
+chin_ups = Exercise.find_or_create_by!(name: "Chinups")
-workout_a = program.workouts.create(name: "A")
+workout_a = program.workouts.find_or_create_by(name: "A")
workout_a.add_exercise(squat, sets: 5, repetitions: 5)
workout_a.add_exercise(bench_press, sets: 5, repetitions: 5)
workout_a.add_exercise(barbell_row, sets: 5, repetitions: 5)
+workout_a.add_exercise(dips, sets: 3, repetitions: 5)
-workout_b = program.workouts.create(name: "B")
+workout_b = program.workouts.find_or_create_by(name: "B")
workout_b.add_exercise(squat, sets: 5, repetitions: 5)
workout_b.add_exercise(overhead_press, sets: 5, repetitions: 5)
workout_b.add_exercise(deadlift, sets: 1, repetitions: 5)
+workout_b.add_exercise(chin_ups, sets: 3, repetitions: 5)
spec/models/workout_spec.rb
@@ -26,5 +26,12 @@ describe Workout do
subject.add_exercise(exercise)
expect(subject.exercise_workouts.first.exercise).to eql(exercise)
end
+
+ it 'does not add a duplicate exercise' do
+ subject.add_exercise(exercise)
+ subject.add_exercise(exercise)
+ expect(subject.exercises.count).to eql(1)
+ expect(subject.exercise_workouts.count).to eql(1)
+ end
end
end