diff --git a/app/helpers/feeds_helper.rb b/app/helpers/feeds_helper.rb index 3a5ee8f3d..1657a6887 100644 --- a/app/helpers/feeds_helper.rb +++ b/app/helpers/feeds_helper.rb @@ -12,8 +12,20 @@ module FeedsHelper feed.kind == "processes" end + def feed_debates_enabled? + Setting["feature.homepage.widgets.feeds.debates"].present? + end + + def feed_proposals_enabled? + Setting["feature.homepage.widgets.feeds.proposals"].present? + end + def feed_processes_enabled? - Setting['feature.homepage.widgets.feeds.processes'].present? + Setting["feature.homepage.widgets.feeds.processes"].present? + end + + def feed_debates_and_proposals_enabled? + feed_debates_enabled? && feed_proposals_enabled? end end diff --git a/app/views/welcome/_feeds.html.erb b/app/views/welcome/_feeds.html.erb index 3d9548ff2..c3b2fea87 100644 --- a/app/views/welcome/_feeds.html.erb +++ b/app/views/welcome/_feeds.html.erb @@ -2,7 +2,8 @@ <% @feeds.each do |feed| %> <% if feed_proposals?(feed) %> -
+

<%= t("welcome.feed.most_active.#{feed.kind}") %>

@@ -16,7 +17,8 @@
<% end %> -
+
<%= link_to item.title, url_for(item) %>

<%= item.summary %>

@@ -29,7 +31,8 @@ <% end %> <% if feed_debates?(feed) %> -
+

<%= t("welcome.feed.most_active.#{feed.kind}") %>

diff --git a/spec/features/admin/homepage/homepage_spec.rb b/spec/features/admin/homepage/homepage_spec.rb index c06e131f4..babd4814e 100644 --- a/spec/features/admin/homepage/homepage_spec.rb +++ b/spec/features/admin/homepage/homepage_spec.rb @@ -39,14 +39,18 @@ feature 'Homepage' do visit admin_homepage_path within("#widget_feed_#{proposals_feed.id}") do - select '1', from: 'widget_feed_limit' + select "1", from: "widget_feed_limit" accept_confirm { click_button "Enable" } end visit root_path - expect(page).to have_content "Most active proposals" - expect(page).to have_css(".proposal", count: 1) + within("#feed_proposals") do + expect(page).to have_content "Most active proposals" + expect(page).to have_css(".proposal", count: 1) + end + + expect(page).not_to have_css("#feed_proposals.medium-8") end scenario "Debates", :js do @@ -54,14 +58,50 @@ feature 'Homepage' do visit admin_homepage_path within("#widget_feed_#{debates_feed.id}") do - select '2', from: 'widget_feed_limit' + select "2", from: "widget_feed_limit" accept_confirm { click_button "Enable" } end visit root_path - expect(page).to have_content "Most active debates" - expect(page).to have_css(".debate", count: 2) + within("#feed_debates") do + expect(page).to have_content "Most active debates" + expect(page).to have_css(".debate", count: 2) + end + + expect(page).not_to have_css("#feed_debates.medium-4") + end + + scenario "Proposals and debates", :js do + 3.times { create(:proposal) } + 3.times { create(:debate) } + + visit admin_homepage_path + + within("#widget_feed_#{proposals_feed.id}") do + select "3", from: "widget_feed_limit" + accept_confirm { click_button "Enable" } + end + + within("#widget_feed_#{debates_feed.id}") do + select "3", from: "widget_feed_limit" + accept_confirm { click_button "Enable" } + end + + visit root_path + + within("#feed_proposals") do + expect(page).to have_content "Most active proposals" + expect(page).to have_css(".proposal", count: 3) + end + + within("#feed_debates") do + expect(page).to have_content "Most active debates" + expect(page).to have_css(".debate", count: 3) + end + + expect(page).to have_css("#feed_proposals.medium-8") + expect(page).to have_css("#feed_debates.medium-4") end scenario "Processes", :js do