From d08af6193ec11a408d4eb9ba36cb24db23173134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baza=CC=81n?= Date: Wed, 17 May 2017 15:13:29 +0200 Subject: [PATCH] changes unselected scope to include undecided feasibility --- app/models/budget/investment.rb | 2 +- spec/factories.rb | 4 +++ spec/models/budget/investment_spec.rb | 40 +++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/app/models/budget/investment.rb b/app/models/budget/investment.rb index 4f7659aa2..a214546c3 100644 --- a/app/models/budget/investment.rb +++ b/app/models/budget/investment.rb @@ -47,7 +47,7 @@ class Budget scope :undecided, -> { where(feasibility: "undecided") } scope :with_supports, -> { where('cached_votes_up > 0') } scope :selected, -> { feasible.where(selected: true) } - scope :unselected, -> { feasible.where(selected: false) } + scope :unselected, -> { not_unfeasible.where(selected: false) } scope :last_week, -> { where("created_at >= ?", 7.days.ago)} scope :by_group, -> (group_id) { where(group_id: group_id) } diff --git a/spec/factories.rb b/spec/factories.rb index f0a4fc5a2..7cd536946 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -275,6 +275,10 @@ FactoryGirl.define do unfeasibility_explanation "set to unfeasible on creation" end + trait :undecided do + feasibility "undecided" + end + trait :finished do valuation_finished true end diff --git a/spec/models/budget/investment_spec.rb b/spec/models/budget/investment_spec.rb index 5c8406970..af480753a 100644 --- a/spec/models/budget/investment_spec.rb +++ b/spec/models/budget/investment_spec.rb @@ -342,6 +342,46 @@ describe Budget::Investment do expect(Budget::Investment.unfeasible).to eq [unfeasible_investment] end end + + describe "not_unfeasible" do + it "should return all feasible and undecided investments" do + unfeasible_investment = create(:budget_investment, :unfeasible) + undecided_investment = create(:budget_investment, :undecided) + feasible_investment = create(:budget_investment, :feasible) + + expect(Budget::Investment.not_unfeasible.sort).to eq [undecided_investment, feasible_investment].sort + end + end + + describe "undecided" do + it "should return all undecided investments" do + unfeasible_investment = create(:budget_investment, :unfeasible) + undecided_investment = create(:budget_investment, :undecided) + feasible_investment = create(:budget_investment, :feasible) + + expect(Budget::Investment.undecided).to eq [undecided_investment] + end + end + + describe "selected" do + it "should return all selected investments" do + selected_investment = create(:budget_investment, :selected) + unselected_investment = create(:budget_investment, :unselected) + + expect(Budget::Investment.selected).to eq [selected_investment] + end + end + + describe "unselected" do + it "should return all unselected not_unfeasible investments" do + selected_investment = create(:budget_investment, :selected) + unselected_unfeasible_investment = create(:budget_investment, :unselected, :unfeasible) + unselected_undecided_investment = create(:budget_investment, :unselected, :undecided) + unselected_feasible_investment = create(:budget_investment, :unselected, :feasible) + + expect(Budget::Investment.unselected.sort).to eq [unselected_undecided_investment, unselected_feasible_investment].sort + end + end end describe "apply_filters_and_search" do