diff --git a/app/models/budget/investment.rb b/app/models/budget/investment.rb index e8fec254f..0b4470383 100644 --- a/app/models/budget/investment.rb +++ b/app/models/budget/investment.rb @@ -239,7 +239,7 @@ class Budget if budget.balloting? && params[:unfeasible].blank? && params[:unselected].blank? investments = investments.selected - elsif budget.balloting? && params[:unfeasible].blank? + elsif budget.balloting? && params[:unfeasible].blank? && params[:unselected].present? investments = investments.feasible.unselected else investments = params[:unfeasible].present? ? investments.unfeasible : investments.not_unfeasible diff --git a/spec/features/budgets/investments_spec.rb b/spec/features/budgets/investments_spec.rb index 8a817a805..69d995311 100644 --- a/spec/features/budgets/investments_spec.rb +++ b/spec/features/budgets/investments_spec.rb @@ -602,5 +602,52 @@ feature 'Budget Investments' do end end + scenario 'Show unselected budget investments' do + investment1 = create(:budget_investment, :feasible, heading: heading, valuation_finished: true) + investment2 = create(:budget_investment, :selected, :feasible, heading: heading, valuation_finished: true) + investment3 = create(:budget_investment, :selected, :feasible, heading: heading, valuation_finished: true) + investment4 = create(:budget_investment, :selected, :feasible, heading: heading, valuation_finished: true) + + visit budget_investments_path(budget_id: budget.id, heading_id: heading.id, unselected: 1) + + within("#budget-investments") do + expect(page).to have_css('.budget-investment', count: 1) + + expect(page).to have_content(investment1.title) + expect(page).to_not have_content(investment2.title) + expect(page).to_not have_content(investment3.title) + expect(page).to_not have_content(investment4.title) + end + end + + scenario "Shows unselected link for group with one heading" do + group = create(:budget_group, name: 'All City', budget: budget) + heading = create(:budget_heading, name: "Madrid", group: group) + + visit budget_path(budget) + click_link 'See investments not selected for balloting phase' + + click_link "All City" + + expected_path = budget_investments_path(budget, heading_id: heading.id, unselected: 1) + expect(page).to have_current_path(expected_path) + end + + scenario "Shows unselected link for group with many headings" do + group = create(:budget_group, name: 'Districts', budget: budget) + heading1 = create(:budget_heading, name: 'Carabanchel', group: group) + heading2 = create(:budget_heading, name: 'Barajas', group: group) + + visit budget_path(budget) + + click_link 'See investments not selected for balloting phase' + + click_link 'Districts' + click_link 'Carabanchel' + + expected_path = budget_investments_path(budget, heading_id: heading1.id, unselected: 1) + expect(page).to have_current_path(expected_path) + end + end end