From 251441e1098103f7febedcff88c391537819855c Mon Sep 17 00:00:00 2001 From: Angel Perez Date: Fri, 8 Jun 2018 18:40:41 -0400 Subject: [PATCH] Users can now hide recommendations --- app/views/shared/_recommended_index.html.erb | 39 +++++++++++--------- spec/features/debates_spec.rb | 24 ++++++++++++ spec/features/proposals_spec.rb | 24 ++++++++++++ 3 files changed, 69 insertions(+), 18 deletions(-) diff --git a/app/views/shared/_recommended_index.html.erb b/app/views/shared/_recommended_index.html.erb index 17f6da2ca..48f39cbf2 100644 --- a/app/views/shared/_recommended_index.html.erb +++ b/app/views/shared/_recommended_index.html.erb @@ -4,26 +4,29 @@

<%= t("shared.recommended_index.title") %>

- <%= link_to "#", title: t("shared.recommended_index.hide"), - class: "float-right-medium small hide-recommendations" do %> - - <%= t("shared.recommended_index.hide") %> - <% end %> +
+ <%= link_to "#", title: t("shared.recommended_index.hide"), + class: "float-right-medium small hide-recommendations", + data: { toggle: "recommendations" } do %> + + <%= t("shared.recommended_index.hide") %> + <% end %> - <% recommended.each_with_index do |recommended, index| %> -
- <%= link_to recommended_path(recommended) do %> -
-

<%= recommended.title %>

-
- <% end %> + <% recommended.each_with_index do |recommended, index| %> +
+ <%= link_to recommended_path(recommended) do %> +
+

<%= recommended.title %>

+
+ <% end %> +
+ <% end %> + +
+ <%= link_to t("shared.recommended_index.see_more"), + current_path_with_query_params(order: "recommendations"), + class: "float-right-medium small" %>
- <% end %> - -
- <%= link_to t("shared.recommended_index.see_more"), - current_path_with_query_params(order: "recommendations"), - class: "float-right-medium small" %>
diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb index ceb551765..2a40f9d9b 100644 --- a/spec/features/debates_spec.rb +++ b/spec/features/debates_spec.rb @@ -503,6 +503,30 @@ feature 'Debates' do expect(page).not_to have_css('.recommendation', count: 3) expect(page).not_to have_link('recommendations') end + + scenario 'Recommendations shown in index are dismissable', :js do + user = create(:user, recommended_debates: true) + proposal = create(:proposal, tag_list: "Sport") + create(:follow, followable: proposal, user: user) + + login_as(user) + + visit debates_path + + within("#recommendations") do + expect(page).to have_content('Best') + expect(page).to have_content('Worst') + expect(page).to have_content('Medium') + expect(page).to have_css('.recommendation', count: 3) + + find('.icon-x').click + + expect(page).not_to have_content('Best') + expect(page).not_to have_content('Worst') + expect(page).not_to have_content('Medium') + expect(page).not_to have_css('.recommendation', count: 3) + end + end end end diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index 4000eb504..569becce9 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -833,6 +833,30 @@ feature 'Proposals' do expect(page).not_to have_css('.recommendation', count: 3) expect(page).not_to have_link('recommendations') end + + scenario 'Recommendations shown in index are dismissable', :js do + user = create(:user, recommended_proposals: true) + proposal = create(:proposal, tag_list: "Sport") + create(:follow, followable: proposal, user: user) + + login_as(user) + + visit proposals_path + + within("#recommendations") do + expect(page).to have_content('Best') + expect(page).to have_content('Worst') + expect(page).to have_content('Medium') + expect(page).to have_css('.recommendation', count: 3) + + find('.icon-x').click + + expect(page).not_to have_content('Best') + expect(page).not_to have_content('Worst') + expect(page).not_to have_content('Medium') + expect(page).not_to have_css('.recommendation', count: 3) + end + end end end