master
 1require "rails_helper"
 2
 3describe ExerciseSet do
 4  subject { build(:work_set) }
 5
 6  describe "#weight_per_side" do
 7    it "returns empty bar" do
 8      subject.target_weight = 45.lbs
 9      expect(subject.weight_per_side).to be_blank
10    end
11
12    it "returns 25 lbs/side" do
13      subject.target_weight = 95.lbs
14      expect(subject.weight_per_side).to eql("25.0 lbs/side")
15    end
16  end
17
18  describe ".for" do
19    let(:squat) { create(:exercise) }
20    let(:dip) { create(:exercise) }
21
22    it "returns all sets for the exercise only" do
23      squat_set = create(:work_set, exercise: squat)
24      _ = create(:work_set, exercise: dip)
25
26      expect(ExerciseSet.for(squat)).to match_array([squat_set])
27    end
28
29    it "returns nil" do
30      expect(ExerciseSet.for(squat)).to be_empty
31    end
32  end
33
34  describe "#target_weight" do
35    it "saves lbs" do
36      subject.target_weight = 45.lbs
37      subject.save!
38      expect(subject.reload.target_weight).to eql(45.lbs)
39    end
40
41    it "saves kgs" do
42      subject.target_weight = 20.kg
43      subject.save!
44      expect(subject.reload.target_weight).to eql(20.kg)
45    end
46  end
47end