improves following view and updates specs

This commit is contained in:
decabeza
2017-12-07 16:31:05 +01:00
parent 36c61643e5
commit 377a1d9f01
6 changed files with 43 additions and 111 deletions

View File

@@ -64,12 +64,4 @@ module UsersHelper
end
end
def empty_interests_message_text(user)
if current_user == user
t('account.show.public_interests_my_empty_list')
else
t('account.show.public_interests_user_empty_list')
end
end
end

View File

@@ -2,18 +2,10 @@
<h4><%= interests_title_text(user) %></h4>
<% if user.interests.any? %>
<ul class="no-bullet tags">
<% user.interests.each do |interest| %>
<li class="inline-block"><span><%= interest %></span></li>
<% end %>
</ul>
<% else %>
<div class="callout primary">
<%= empty_interests_message_text(user) %>
</div>
<% end %>
</div>

View File

@@ -38,16 +38,20 @@
<% end %>
<% end %>
<% end %>
<%= t("users.show.no_activity") if @activity_counts.values.inject(&:+) == 0 %>
</ul>
<% if @activity_counts.values.inject(&:+) == 0 %>
<div class="callout primary">
<%= t("users.show.no_activity") %>
</div>
<% end %>
<%= render "activity_page" %>
<% else %>
<div class="callout warning margin">
<%= t('users.show.private_activity') %>
</div>
<% end %>
</div>
</div>
</main>

View File

@@ -15,8 +15,6 @@ en:
public_interests_label: Keep my interests public
public_interests_my_title_list: Tags of elements you follow
public_interests_user_title_list: Tags of elements this user follows
public_interests_my_empty_list: You do not follow any elements yet.
public_interests_user_empty_list: This user does not follow any elements yet.
save_changes_submit: Save changes
subscription_to_website_newsletter_label: Receive by email website relevant information
email_on_direct_message_label: Receive emails about direct messages

View File

@@ -15,8 +15,6 @@ es:
public_interests_label: Mostrar públicamente mis intereses
public_interests_my_title_list: Etiquetas de los elementos que sigues
public_interests_user_title_list: Etiquetas de los elementos que sigue este usuario
public_interests_my_empty_list: Aún no sigues ningún elemento.
public_interests_user_empty_list: Este usuario no sigue ningún elemento todavía.
save_changes_submit: Guardar cambios
subscription_to_website_newsletter_label: Recibir emails con información interesante sobre la web
email_on_direct_message_label: Recibir emails con mensajes privados

View File

@@ -259,6 +259,9 @@ feature 'Users' do
end
scenario 'User can display public page' do
proposal = create(:proposal, tag_list: "Sport")
create(:follow, :followed_proposal, followable: proposal, user: @user)
login_as(@user)
visit account_path
@@ -267,22 +270,29 @@ feature 'Users' do
logout
visit user_path(@user)
visit user_path(@user, filter: 'follows', page: '1')
expect(page).to have_css('#public_interests')
end
scenario 'Is always visible for the owner' do
proposal = create(:proposal, tag_list: "Sport")
create(:follow, :followed_proposal, followable: proposal, user: @user)
login_as(@user)
visit account_path
uncheck 'account_public_interests'
click_button 'Save changes'
visit user_path(@user)
visit user_path(@user, filter: 'follows', page: '1')
expect(page).to have_css('#public_interests')
end
scenario 'Is always visible for admins' do
proposal = create(:proposal, tag_list: "Sport")
create(:follow, :followed_proposal, followable: proposal, user: @user)
login_as(@user)
visit account_path
@@ -292,11 +302,14 @@ feature 'Users' do
logout
login_as(create(:administrator).user)
visit user_path(@user)
visit user_path(@user, filter: 'follows', page: '1')
expect(page).to have_css('#public_interests')
end
scenario 'Is always visible for moderators' do
proposal = create(:proposal, tag_list: "Sport")
create(:follow, :followed_proposal, followable: proposal, user: @user)
login_as(@user)
visit account_path
@@ -306,39 +319,30 @@ feature 'Users' do
logout
login_as(create(:moderator).user)
visit user_path(@user)
visit user_path(@user, filter: 'follows', page: '1')
expect(page).to have_css('#public_interests')
end
scenario 'Should display generic interests title' do
proposal = create(:proposal, tag_list: "Sport")
create(:follow, :followed_proposal, followable: proposal, user: @user)
@user.update(public_interests: true)
visit user_path(@user)
visit user_path(@user, filter: 'follows', page: '1')
expect(page).to have_content("Tags of elements this user follows")
end
scenario 'Should display custom interests title when user is visiting own user page' do
proposal = create(:proposal, tag_list: "Sport")
create(:follow, :followed_proposal, followable: proposal, user: @user)
@user.update(public_interests: true)
login_as(@user)
visit user_path(@user)
visit user_path(@user, filter: 'follows', page: '1')
expect(page).to have_content("Tags of elements you follow")
end
scenario 'Should display generic empty interests list message when visited user has not interests defined' do
@user.update(public_interests: true)
visit user_path(@user)
expect(page).to have_content("This user does not follow any elements yet.")
end
scenario 'Should display custom empty interests list message when user has not interests defined and user is visiting own user page' do
@user.update(public_interests: true)
login_as(@user)
visit user_path(@user)
expect(page).to have_content("You do not follow any elements yet.")
end
end
feature 'Special comments' do
@@ -418,22 +422,22 @@ feature 'Users' do
expect(page).to have_content('1 Following')
end
scenario 'Display accordion proposal tab when user is following one proposal at least' do
scenario 'Display proposal tab when user is following one proposal at least' do
proposal = create(:proposal)
create(:follow, followable: proposal, user: @user)
visit user_path(@user, filter: "follows")
expect(page).to have_link('Citizen proposals', href: "#")
expect(page).to have_link('Citizen proposals', href: "#citizen_proposals")
end
scenario 'Not display accordion proposal tab when user is not following any proposal' do
scenario 'Not display proposal tab when user is not following any proposal' do
visit user_path(@user, filter: "follows")
expect(page).not_to have_link('Citizen proposals', href: "#")
expect(page).not_to have_link('Citizen proposals', href: "#citizen_proposals")
end
scenario 'Display proposal with action buttons inside accordion proposal tab when current user is proposal author', :js do
scenario 'Display proposals with link to proposal' do
proposal = create(:proposal, author: @user)
create(:follow, followable: proposal, user: @user)
login_as @user
@@ -442,35 +446,7 @@ feature 'Users' do
click_link 'Citizen proposals'
expect(page).to have_content proposal.title
expect(page).to have_link "Send notification"
expect(page).to have_link "Retire"
end
scenario 'Display proposal with action buttons inside accordion proposal tab when there is no logged user', :js do
proposal = create(:proposal, author: @user)
create(:follow, followable: proposal, user: @user)
visit user_path(@user, filter: "follows")
click_link 'Citizen proposals'
expect(page).to have_content proposal.title
expect(page).not_to have_link "Send notification"
expect(page).not_to have_link "Retire"
end
scenario 'Display proposal without action buttons inside accordion proposal tab when current user is not proposal author', :js do
proposal = create(:proposal)
create(:follow, followable: proposal, user: @user)
login_as @user
visit user_path(@user, filter: "follows")
click_link 'Citizen proposals'
expect(page).to have_content proposal.title
expect(page).not_to have_link "Send notification"
expect(page).not_to have_link "Retire"
end
end
describe 'Budget Investments' do
@@ -484,35 +460,22 @@ feature 'Users' do
expect(page).to have_content('1 Following')
end
scenario 'Display accordion budget investment tab when user is following one budget investment at least' do
scenario 'Display budget investment tab when user is following one budget investment at least' do
budget_investment = create(:budget_investment)
create(:follow, followable: budget_investment, user: @user)
visit user_path(@user, filter: "follow")
visit user_path(@user, filter: "follows")
expect(page).to have_link('Investments', href: "#")
expect(page).to have_link('Investments', href: "#investments")
end
scenario 'Not display accordion budget investment tab when user is not following any budget investment' do
visit user_path(@user, filter: "follow")
scenario 'Not display budget investment tab when user is not following any budget investment' do
visit user_path(@user, filter: "follows")
expect(page).not_to have_link('Investments', href: "#")
expect(page).not_to have_link('Investments', href: "#investments")
end
scenario 'Display budget investment with action buttons inside accordion budget investment tab when current user is a verified user and author', :js do
user = create(:user, :level_two)
budget_investment = create(:budget_investment, author: user)
create(:follow, followable: budget_investment, user: user)
login_as user
visit user_path(user, filter: "follows")
click_link 'Investments'
expect(page).to have_link budget_investment.title
expect(page).to have_link "Delete"
end
scenario 'Display budget investment with action buttons inside accordion budget investment tab when there is no logged user', :js do
scenario 'Display budget investment with link to budget investment' do
user = create(:user, :level_two)
budget_investment = create(:budget_investment, author: user)
create(:follow, followable: budget_investment, user: user)
@@ -521,22 +484,7 @@ feature 'Users' do
click_link 'Investments'
expect(page).to have_link budget_investment.title
expect(page).not_to have_link "Delete"
end
scenario 'Display budget investment without action buttons inside accordion budget investment tab when current user is not budget investment author', :js do
user = create(:user, :level_two)
budget_investment = create(:budget_investment)
create(:follow, followable: budget_investment, user: user)
login_as user
visit user_path(user, filter: "follows")
click_link 'Investments'
expect(page).to have_link budget_investment.title
expect(page).not_to have_link "Delete"
end
end
end