From 2ad6ced12fca0b6d36c15ddea2f21626957d5e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 24 Sep 2019 00:38:29 +0200 Subject: [PATCH 1/3] Create featured proposals if enabled We had a case where we created 5 extra records in pagination and checked 2 records were present, because the other 3 were automatically considered featured proposals. Explicitely creating featured proposals let us create 2 extra records and check 2 records are present, which is far more intuitive. --- spec/features/proposals_spec.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index 52c1c15e4..84acf882d 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -31,9 +31,9 @@ describe "Proposals" do Setting["feature.featured_proposals"] = true Setting["featured_proposals_number"] = 3 end + let!(:featured_proposals) { create_featured_proposals } scenario "Lists featured and regular proposals" do - featured_proposals = create_featured_proposals proposals = [create(:proposal), create(:proposal), create(:proposal)] visit proposals_path @@ -57,7 +57,6 @@ describe "Proposals" do end scenario "Index view mode" do - featured_proposals = create_featured_proposals proposals = [create(:proposal), create(:proposal), create(:proposal)] visit proposals_path @@ -96,7 +95,7 @@ describe "Proposals" do scenario "Pagination" do per_page = Kaminari.config.default_per_page - (per_page + 5).times { create(:proposal) } + (per_page + 2).times { create(:proposal) } visit proposals_path @@ -114,7 +113,6 @@ describe "Proposals" do end scenario "Index should show proposal descriptive image only when is defined" do - featured_proposals = create_featured_proposals proposal = create(:proposal) proposal_with_image = create(:proposal) image = create(:image, imageable: proposal_with_image) From 52c8691aaea1bd81052bf927fa8ca4048e8ee082 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 24 Sep 2019 01:05:45 +0200 Subject: [PATCH 2/3] Don't create featured proposals if disabled Before we disabled featured proposals by default, there were many tests creating them because they were needed in order to create non-featured proposals. But now these tests don't need to create featured proposals anymore. --- spec/features/official_positions_spec.rb | 2 -- spec/features/proposals_spec.rb | 10 ---------- spec/features/tags/budget_investments_spec.rb | 3 +-- spec/features/tags/proposals_spec.rb | 5 ----- spec/features/votes_spec.rb | 1 - 5 files changed, 1 insertion(+), 20 deletions(-) diff --git a/spec/features/official_positions_spec.rb b/spec/features/official_positions_spec.rb index c7f5bee2b..0463a23c9 100644 --- a/spec/features/official_positions_spec.rb +++ b/spec/features/official_positions_spec.rb @@ -49,8 +49,6 @@ describe "Official positions" do before do @proposal1 = create(:proposal, author: @user1) @proposal2 = create(:proposal, author: @user2) - - create_featured_proposals end scenario "Index" do diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index 84acf882d..a9c39acc2 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -572,7 +572,6 @@ describe "Proposals" do end scenario "Index has a link to retired proposals list" do - create_featured_proposals not_retired = create(:proposal) retired = create(:proposal, :retired) @@ -689,8 +688,6 @@ describe "Proposals" do describe "Proposal index order filters" do scenario "Default order is hot_score", :js do - create_featured_proposals - best_proposal = create(:proposal, title: "Best proposal") best_proposal.update_column(:hot_score, 10) worst_proposal = create(:proposal, title: "Worst proposal") @@ -705,8 +702,6 @@ describe "Proposals" do end scenario "Proposals are ordered by confidence_score", :js do - create_featured_proposals - best_proposal = create(:proposal, title: "Best proposal") best_proposal.update_column(:confidence_score, 10) worst_proposal = create(:proposal, title: "Worst proposal") @@ -728,8 +723,6 @@ describe "Proposals" do end scenario "Proposals are ordered by newest", :js do - create_featured_proposals - best_proposal = create(:proposal, title: "Best proposal", created_at: Time.current) medium_proposal = create(:proposal, title: "Medium proposal", created_at: Time.current - 1.hour) worst_proposal = create(:proposal, title: "Worst proposal", created_at: Time.current - 1.day) @@ -864,7 +857,6 @@ describe "Proposals" do describe "Archived proposals" do scenario "show on proposals list" do - create_featured_proposals archived_proposals = create_archived_proposals visit proposals_path @@ -878,7 +870,6 @@ describe "Proposals" do end scenario "do not show in other index tabs" do - create_featured_proposals archived_proposal = create(:proposal, :archived) visit proposals_path @@ -898,7 +889,6 @@ describe "Proposals" do end scenario "do not show support buttons in index" do - create_featured_proposals archived_proposals = create_archived_proposals visit proposals_path(order: "archival_date") diff --git a/spec/features/tags/budget_investments_spec.rb b/spec/features/tags/budget_investments_spec.rb index 836e4d4fd..9b7045f3f 100644 --- a/spec/features/tags/budget_investments_spec.rb +++ b/spec/features/tags/budget_investments_spec.rb @@ -40,8 +40,7 @@ describe "Tags" do end end - scenario "Index shows up to 5 tags per proposal" do - create_featured_proposals + scenario "Index shows up to 5 tags per investment" do tag_list = ["Hacienda", "Economía", "Medio Ambiente", "Corrupción", "Fiestas populares", "Prensa"] create :budget_investment, heading: heading, tag_list: tag_list diff --git a/spec/features/tags/proposals_spec.rb b/spec/features/tags/proposals_spec.rb index db0f02d83..753c44d0d 100644 --- a/spec/features/tags/proposals_spec.rb +++ b/spec/features/tags/proposals_spec.rb @@ -3,7 +3,6 @@ require "rails_helper" describe "Tags" do scenario "Index" do - create_featured_proposals earth = create(:proposal, tag_list: "Medio Ambiente") money = create(:proposal, tag_list: "Economía") @@ -19,7 +18,6 @@ describe "Tags" do end scenario "Index shows up to 5 tags per proposal" do - create_featured_proposals tag_list = ["Hacienda", "Economía", "Medio Ambiente", "Corrupción", "Fiestas populares", "Prensa"] create :proposal, tag_list: tag_list @@ -31,7 +29,6 @@ describe "Tags" do end scenario "Index featured proposals does not show tags" do - featured_proposals = create_featured_proposals proposal = create(:proposal, tag_list: "123") visit proposals_path(tag: "123") @@ -41,7 +38,6 @@ describe "Tags" do end scenario "Index shows 3 tags with no plus link" do - create_featured_proposals tag_list = ["Medio Ambiente", "Corrupción", "Fiestas populares"] create :proposal, tag_list: tag_list @@ -192,7 +188,6 @@ describe "Tags" do context "Filter" do scenario "From index" do - create_featured_proposals proposal1 = create(:proposal, tag_list: "Education") proposal2 = create(:proposal, tag_list: "Health") diff --git a/spec/features/votes_spec.rb b/spec/features/votes_spec.rb index 59449b123..910be6ac1 100644 --- a/spec/features/votes_spec.rb +++ b/spec/features/votes_spec.rb @@ -254,7 +254,6 @@ describe "Votes" do end scenario "Create in listed proposal in index", :js do - create_featured_proposals visit proposals_path within("#proposal_#{@proposal.id}") do From 8ec8002acde4ba07d464d68e1e96040925813fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 24 Sep 2019 01:07:04 +0200 Subject: [PATCH 3/3] Enable featured proposals when they're used These specs were added before we disabled featured proposals by default. After that, they were passing, but they were not testing the scenario they were supposed to test. --- spec/features/proposals_spec.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index a9c39acc2..b050f15bb 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -1506,6 +1506,7 @@ describe "Proposals" do end scenario "After a search do not show featured proposals" do + Setting["feature.featured_proposals"] = true featured_proposals = create_featured_proposals proposal = create(:proposal, title: "Abcdefghi") @@ -1644,6 +1645,7 @@ describe "Proposals" do {} scenario "Erased author" do + Setting["feature.featured_proposals"] = true user = create(:user) proposal = create(:proposal, author: user) user.erase