master
1require "rails_helper"
2
3describe TrainingHistory do
4 include_context "stronglifts_program"
5 subject { TrainingHistory.new(user, squat) }
6 let(:user) { create(:user) }
7
8 describe "#to_line_chart" do
9 let(:date) { DateTime.now.utc }
10 let(:target_weight) { rand(300) }
11 let(:body_weight) { 210 }
12
13 before :each do
14 session = user.begin_workout(routine_a, date, body_weight)
15 5.times do
16 session.train(squat, target_weight, repetitions: 5)
17 session.train(bench_press, target_weight + 10, repetitions: 5)
18 end
19 end
20
21 it "returns the history in the format required for the chart" do
22 result = subject.to_line_chart
23 expect(result).to_not be_nil
24 expect(result.keys.first.to_i).to eql(date.to_i)
25 expect(result.keys.count).to eql(1)
26 expect(result.values.first).to eql(target_weight.to_f)
27 end
28 end
29
30 describe "#completed_any" do
31 describe "when this exercise has never been performed" do
32 it "returns false" do
33 expect(subject.completed_any?).to be_falsey
34 end
35 end
36
37 describe "when the exercise has been performed at least once" do
38 it "returns true" do
39 session = user.begin_workout(routine_a, DateTime.now, 225)
40 3.times do
41 session.train(squat, 310, repetitions: 5)
42 end
43 expect(subject.completed_any?).to be_truthy
44 end
45 end
46 end
47end