Commit 5375873

mo khan <mo@mokhan.ca>
2016-05-28 16:39:01
add spec to only show line chart when an exercise has been performed.
1 parent 8710993
Changed files (3)
app/models/training_history.rb
@@ -15,6 +15,13 @@ class TrainingHistory
       maximum(:target_weight)
   end
 
+  def completed_any?
+    user.
+      exercise_sessions.
+      joins(:exercise).
+      any?
+  end
+
   def to_line_chart
     user.
       exercise_sessions.
app/views/training_histories/_training_history.html.erb
@@ -1,5 +1,6 @@
-
-<div class="panel">
-<p class="medium-text-center"><%= training_history.exercise.name %> </p>
-<%= line_chart training_history.to_line_chart %>
-</div>
+<% if training_history.completed_any? %>
+  <div class="panel">
+    <p class="medium-text-center"><%= training_history.exercise.name %> </p>
+    <%= line_chart training_history.to_line_chart %>
+  </div>
+<% end %>
spec/models/training_history_spec.rb
@@ -22,4 +22,20 @@ describe TrainingHistory do
       expect(result.values.first).to eql(target_weight.to_f)
     end
   end
+
+  describe "#completed_any" do
+    describe "when this exercise has never been performed" do
+      it 'returns false' do
+        expect(subject.completed_any?).to be_falsey
+      end
+    end
+
+    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])
+        expect(subject.completed_any?).to be_truthy
+      end
+    end
+  end
 end