From 90bb06e68461d413f8877003d80d0abf4ddf7149 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Sun, 4 Mar 2018 22:29:40 +0100 Subject: [PATCH] Fix display of unfeasibility explanation We were missing a check to make sure valuation had finished before displaying the unfeasibility explanation --- spec/features/budgets/investments_spec.rb | 18 +++++++++++ spec/models/budget/investment_spec.rb | 38 +++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/spec/features/budgets/investments_spec.rb b/spec/features/budgets/investments_spec.rb index 51445bccc..4347fb212 100644 --- a/spec/features/budgets/investments_spec.rb +++ b/spec/features/budgets/investments_spec.rb @@ -991,6 +991,24 @@ feature 'Budget Investments' do expect(page).not_to have_content("Local government is not competent in this matter") end + scenario "Show (unfeasible budget investment with valuation not finished)" do + user = create(:user) + login_as(user) + + investment = create(:budget_investment, + :unfeasible, + valuation_finished: false, + budget: budget, + group: group, + heading: heading, + unfeasibility_explanation: 'Local government is not competent in this matter') + + visit budget_investment_path(budget_id: budget.id, id: investment.id) + + expect(page).not_to have_content("Unfeasibility explanation") + expect(page).not_to have_content(investment.unfeasibility_explanation) + end + scenario "Show milestones", :js do user = create(:user) investment = create(:budget_investment) diff --git a/spec/models/budget/investment_spec.rb b/spec/models/budget/investment_spec.rb index a4e1d246d..e9081cf34 100644 --- a/spec/models/budget/investment_spec.rb +++ b/spec/models/budget/investment_spec.rb @@ -308,6 +308,44 @@ describe Budget::Investment do end end + describe "#by_budget" do + + it "returns true for unfeasible investments with unfeasibility explanation and valuation finished" do + Budget::Phase::PUBLISHED_PRICES_PHASES.each do |phase| + budget.update(phase: phase) + + expect(investment.should_show_unfeasibility_explanation?).to eq(true) + end + end + + it "returns false in valuation has not finished" do + investment.update(valuation_finished: false) + Budget::Phase::PUBLISHED_PRICES_PHASES.each do |phase| + budget.update(phase: phase) + + expect(investment.should_show_unfeasibility_explanation?).to eq(false) + end + end + + it "returns false if not unfeasible" do + investment.update(feasibility: "undecided") + Budget::Phase::PUBLISHED_PRICES_PHASES.each do |phase| + budget.update(phase: phase) + + expect(investment.should_show_unfeasibility_explanation?).to eq(false) + end + end + + it "returns false if unfeasibility explanation blank" do + investment.update(unfeasibility_explanation: "") + Budget::Phase::PUBLISHED_PRICES_PHASES.each do |phase| + budget.update(phase: phase) + + expect(investment.should_show_unfeasibility_explanation?).to eq(false) + end + end + end + describe "#by_admin" do it "returns investments assigned to specific administrator" do investment1 = create(:budget_investment, administrator_id: 33)