From f21fda08989cc7c63d661ac324bc8ffc0aa53073 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Wed, 27 Jul 2016 16:39:25 +0200 Subject: [PATCH] fixes pending specs --- app/controllers/budgets/investments_controller.rb | 2 +- app/models/budget/ballot/line.rb | 2 +- app/models/budget/heading.rb | 9 +++++++++ app/models/budget/investment.rb | 2 -- spec/factories.rb | 4 +--- spec/features/budget/investments_spec.rb | 8 +++++--- spec/features/budgets_spec.rb | 9 ++++++--- spec/models/budget/investment_spec.rb | 2 +- spec/models/budget_spec.rb | 2 +- 9 files changed, 25 insertions(+), 15 deletions(-) diff --git a/app/controllers/budgets/investments_controller.rb b/app/controllers/budgets/investments_controller.rb index fcc380d22..44e6efd73 100644 --- a/app/controllers/budgets/investments_controller.rb +++ b/app/controllers/budgets/investments_controller.rb @@ -82,7 +82,7 @@ module Budgets @filter_heading_name = @filter_heading.name end - investments = investments.by_heading(params[:heading_id].presence) + investments = investments.by_heading(params[:heading_id].presence || @budget.headings.first) if params[:unfeasible].present? investments = investments.unfeasible diff --git a/app/models/budget/ballot/line.rb b/app/models/budget/ballot/line.rb index 01835cd90..8f0375a58 100644 --- a/app/models/budget/ballot/line.rb +++ b/app/models/budget/ballot/line.rb @@ -8,7 +8,7 @@ class Budget belongs_to :investment validate :insufficient_funds - validate :different_geozone, :if => :district_proposal? + #needed? validate :different_geozone, :if => :district_proposal? validate :unfeasible #needed? validates :ballot_id, :budget_id, :group_id, :heading_id, :investment_id, presence: true diff --git a/app/models/budget/heading.rb b/app/models/budget/heading.rb index 830596912..c658c5d28 100644 --- a/app/models/budget/heading.rb +++ b/app/models/budget/heading.rb @@ -8,5 +8,14 @@ class Budget validates :group_id, presence: true validates :name, presence: true validates :price, presence: true + + def budget + group.budget + end + + def budget=(resource) + group.budget = resource + end + end end diff --git a/app/models/budget/investment.rb b/app/models/budget/investment.rb index 0eb144430..890175035 100644 --- a/app/models/budget/investment.rb +++ b/app/models/budget/investment.rb @@ -18,8 +18,6 @@ class Budget has_many :valuators, through: :valuator_assignments has_many :comments, as: :commentable - delegate :budget, to: :heading - validates :title, presence: true validates :author, presence: true validates :description, presence: true diff --git a/spec/factories.rb b/spec/factories.rb index 33c0ecda9..e38f47c6e 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -207,9 +207,7 @@ FactoryGirl.define do end factory :budget_group, class: 'Budget::Group' do - ### TMP HACK to associate existing budget to a group - budget { Budget.first } - ### + budget sequence(:name) { |n| "Group #{n}" } end diff --git a/spec/features/budget/investments_spec.rb b/spec/features/budget/investments_spec.rb index 1d551ca11..9209618d5 100644 --- a/spec/features/budget/investments_spec.rb +++ b/spec/features/budget/investments_spec.rb @@ -1,13 +1,15 @@ require 'rails_helper' -xfeature 'Budget Investments' do +feature 'Budget Investments' do let(:author) { create(:user, :level_two, username: 'Isabel') } let(:budget) { create(:budget) } + let(:group) { create(:budget_group, budget: budget) } scenario 'Index' do - investments = [create(:budget_investment, budget: budget), create(:budget_investment, budget: budget), create(:budget_investment, :feasible, budget: budget)] - unfeasible_investment = create(:budget_investment, :unfeasible, budget: budget) + heading = create(:budget_heading, group: group) + investments = [create(:budget_investment, heading: heading), create(:budget_investment, heading: heading), create(:budget_investment, :feasible, heading: heading)] + unfeasible_investment = create(:budget_investment, :unfeasible, heading: heading) visit budget_investments_path(budget_id: budget.id) diff --git a/spec/features/budgets_spec.rb b/spec/features/budgets_spec.rb index f8a7430c4..64f135dec 100644 --- a/spec/features/budgets_spec.rb +++ b/spec/features/budgets_spec.rb @@ -2,16 +2,19 @@ require 'rails_helper' feature 'Budgets' do - xscenario 'Index' do + scenario 'Index' do budgets = create_list(:budget, 3) visit budgets_path budgets.each {|budget| expect(page).to have_link(budget.name)} end - xscenario 'Show' do + scenario 'Show' do budget = create(:budget) - heading = create(:budget_heading, budget: budget) + group = create(:budget_group, budget: budget) + heading = create(:budget_heading, group: group) + visit budget_path(budget) + expect(page).to have_content(budget.name) expect(page).to have_content(heading.name) end diff --git a/spec/models/budget/investment_spec.rb b/spec/models/budget/investment_spec.rb index b08ddaf73..d3dbf0d0b 100644 --- a/spec/models/budget/investment_spec.rb +++ b/spec/models/budget/investment_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -xdescribe Budget::Investment do +describe Budget::Investment do let(:investment) { build(:budget_investment) } it "should be valid" do diff --git a/spec/models/budget_spec.rb b/spec/models/budget_spec.rb index b4d1d44cc..b238717ef 100644 --- a/spec/models/budget_spec.rb +++ b/spec/models/budget_spec.rb @@ -41,7 +41,7 @@ describe Budget do expect(budget.heading_price(heading)).to eq(100) end - xit "returns -1 if the heading provided is not part of the budget" do + it "returns -1 if the heading provided is not part of the budget" do expect(budget.heading_price(create(:budget_heading))).to eq(-1) end end