From 9a75067d7306530a466daa935cc40db5b2e6eeaf Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 14 May 2017 18:15:04 +0200 Subject: [PATCH 1/2] Do not display voting button for unselected investments --- app/models/budget/investment.rb | 2 +- spec/features/budgets/investments_spec.rb | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/models/budget/investment.rb b/app/models/budget/investment.rb index b86cc2518..4f7659aa2 100644 --- a/app/models/budget/investment.rb +++ b/app/models/budget/investment.rb @@ -216,7 +216,7 @@ class Budget end def should_show_ballots? - budget.balloting? + budget.balloting? && selected? end def should_show_price? diff --git a/spec/features/budgets/investments_spec.rb b/spec/features/budgets/investments_spec.rb index ca5427820..a6f988e56 100644 --- a/spec/features/budgets/investments_spec.rb +++ b/spec/features/budgets/investments_spec.rb @@ -652,6 +652,24 @@ feature 'Budget Investments' do expect(page).to have_current_path(expected_path) end + scenario "Do not display vote button for unselected investments in index" do + investment = create(:budget_investment, :unselected, heading: heading) + + visit budget_investments_path(budget_id: budget.id, heading_id: heading.id, filter: "unselected") + + expect(page).to have_content investment.title + expect(page).to_not have_link("Vote") + end + + scenario "Do not display vote button for unselected investments in show" do + investment = create(:budget_investment, :unselected, heading: heading) + + visit budget_investment_path(budget, investment) + + expect(page).to have_content investment.title + expect(page).to_not have_link("Vote") + end + scenario "Reclassification" do user = create(:user, :level_two) investment = create(:budget_investment, :selected, heading: heading) From 84f63c7a6fa9ba4c9a81d156d7c11ffa0131f202 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 14 May 2017 19:19:05 +0200 Subject: [PATCH 2/2] fixes specs --- spec/models/budget/investment_spec.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/spec/models/budget/investment_spec.rb b/spec/models/budget/investment_spec.rb index 6010d5f5a..5c8406970 100644 --- a/spec/models/budget/investment_spec.rb +++ b/spec/models/budget/investment_spec.rb @@ -163,17 +163,24 @@ describe Budget::Investment do end describe "#should_show_ballots?" do - it "returns true in balloting phase" do + it "returns true in balloting phase for selected investments" do budget = create(:budget, phase: "balloting") - investment = create(:budget_investment, budget: budget) + investment = create(:budget_investment, :selected, budget: budget) expect(investment.should_show_ballots?).to eq(true) end + it "returns false for unselected investments" do + budget = create(:budget, phase: "balloting") + investment = create(:budget_investment, :unselected, budget: budget) + + expect(investment.should_show_ballots?).to eq(false) + end + it "returns false in any other phase" do Budget::PHASES.reject {|phase| phase == "balloting"}.each do |phase| budget = create(:budget, phase: phase) - investment = create(:budget_investment, budget: budget) + investment = create(:budget_investment, :selected, budget: budget) expect(investment.should_show_ballots?).to eq(false) end