Commit dd7fed9
Changed files (4)
app
views
profiles
config
locales
spec
features
support
pages
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