Commit dd7fed9

mo khan <mo@mokhan.ca>
2015-06-01 04:15:43
add feature specs for profile page
1 parent 7146ea1
Changed files (4)
app
views
config
locales
spec
app/views/profiles/show.html.erb
@@ -8,7 +8,11 @@
       <%= gravatar_for(@user, size: 128) %>
     <% end %>
     <h1><%= link_to @user.username, profile_path(@user) %></h1>
-    <p><%= t('.workouts_completed', count: @user.training_sessions.count, first_session: l(@user.training_sessions.order(occurred_at: :asc).first.occurred_at, format: :long)) %></p>
+    <% if @user.training_sessions.any? %>
+      <p><%= t('.workouts_completed', count: @user.training_sessions.count, first_session: l(@user.training_sessions.order(occurred_at: :asc).first.occurred_at, format: :long)) %></p>
+    <% else %>
+      <p><%= t('.no_workouts_completed') %></p>
+    <% end %>
 
     <h2><%= t('.personal_records') %></h2>
     <table role="grid">
config/locales/en.yml
@@ -35,6 +35,7 @@ en:
     show:
       exercise_header: Exercise
       maximum_achieved: Maximum Achieved
+      no_workouts_completed: 0 workouts completed
       personal_records: Personal Records
       training_history: Training History
       workouts_completed: "%{count} workouts completed since %{first_session}."
spec/features/profiles_spec.rb
@@ -0,0 +1,22 @@
+require "rails_helper"
+
+feature "Profiles", type: :feature do
+  include_context "stronglifts_program"
+
+  subject { ProfilePage.new(user) }
+  let(:user) { create(:user) }
+
+  before :each do
+    subject.visit_page
+  end
+
+  context "when the user has not completed any workouts" do
+    it "displays the users username" do
+      expect(page).to have_content(user.username)
+    end
+
+    it "displays the number of workouts completed" do
+      expect(page).to have_content(I18n.translate("profiles.show.no_workouts_completed"))
+    end
+  end
+end
spec/support/pages/profile_page.rb
@@ -0,0 +1,7 @@
+require_relative "../page_model.rb"
+
+class ProfilePage < PageModel
+  def initialize(user)
+    super profile_path(user)
+  end
+end