From c0986c7bfbbb87d369ebb4cd7424e97ac4785387 Mon Sep 17 00:00:00 2001 From: Bertocq Date: Mon, 12 Mar 2018 23:05:26 +0100 Subject: [PATCH] Fix investment creation for single budget usage Budget Investment factory creates a secondary budget as a collateral effect because it has a Heading factory that has a Group factory that creates a Budget. This was resulting in problems due to having two "active" Budgets created and `current_budget` method not choosing the one that we expected --- .../comments/budget_investments_valuation_spec.rb | 4 +++- spec/features/emails_spec.rb | 3 ++- spec/features/valuation/budget_investments_spec.rb | 14 ++++++-------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/spec/features/comments/budget_investments_valuation_spec.rb b/spec/features/comments/budget_investments_valuation_spec.rb index d651e04b1..f71d3f3ea 100644 --- a/spec/features/comments/budget_investments_valuation_spec.rb +++ b/spec/features/comments/budget_investments_valuation_spec.rb @@ -5,7 +5,9 @@ feature 'Internal valuation comments on Budget::Investments' do let(:valuator_user) { create(:valuator).user } let(:admin_user) { create(:administrator).user } let(:budget) { create(:budget, :valuating) } - let(:investment) { create(:budget_investment, budget: budget) } + let(:group) { create(:budget_group, budget: budget) } + let(:heading) { create(:budget_heading, group: group) } + let(:investment) { create(:budget_investment, budget: budget, group: group, heading: heading) } background do Setting['feature.budgets'] = true diff --git a/spec/features/emails_spec.rb b/spec/features/emails_spec.rb index b16f7e140..d9841a160 100644 --- a/spec/features/emails_spec.rb +++ b/spec/features/emails_spec.rb @@ -386,7 +386,8 @@ feature 'Emails' do end scenario "Unfeasible investment" do - investment = create(:budget_investment, author: author, budget: budget) + budget.update(phase: 'valuating') + investment = create(:budget_investment, author: author, budget: budget, heading: heading) valuator = create(:valuator) investment.valuators << valuator diff --git a/spec/features/valuation/budget_investments_spec.rb b/spec/features/valuation/budget_investments_spec.rb index cfe40ce1d..b72d48d73 100644 --- a/spec/features/valuation/budget_investments_spec.rb +++ b/spec/features/valuation/budget_investments_spec.rb @@ -216,8 +216,10 @@ feature 'Valuation budget investments' do feature 'Valuate' do let(:admin) { create(:administrator) } let(:investment) do - create(:budget_investment, budget: budget, price: nil, - administrator: admin) + group = create(:budget_group, budget: budget) + heading = create(:budget_heading, group: group) + create(:budget_investment, heading: heading, group: group, budget: budget, price: nil, + administrator: admin) end background do @@ -410,9 +412,7 @@ feature 'Valuation budget investments' do scenario 'not visible to valuators when budget is not valuating' do budget.update(phase: 'publishing_prices') - investment = create(:budget_investment, - :visible_to_valuators, - budget: budget) + investment = create(:budget_investment, budget: budget) investment.valuators << [valuator] login_as(valuator.user) @@ -428,9 +428,7 @@ feature 'Valuation budget investments' do admin = create(:administrator, user: user) valuator = create(:valuator, user: user) - investment = create(:budget_investment, - :visible_to_valuators, - budget: budget) + investment = create(:budget_investment, budget: budget) investment.valuators << [valuator]