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
This commit is contained in:
Bertocq
2018-03-12 23:05:26 +01:00
parent 8fd6f8f1d6
commit c0986c7bfb
3 changed files with 11 additions and 10 deletions

View File

@@ -5,7 +5,9 @@ feature 'Internal valuation comments on Budget::Investments' do
let(:valuator_user) { create(:valuator).user } let(:valuator_user) { create(:valuator).user }
let(:admin_user) { create(:administrator).user } let(:admin_user) { create(:administrator).user }
let(:budget) { create(:budget, :valuating) } 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 background do
Setting['feature.budgets'] = true Setting['feature.budgets'] = true

View File

@@ -386,7 +386,8 @@ feature 'Emails' do
end end
scenario "Unfeasible investment" do 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) valuator = create(:valuator)
investment.valuators << valuator investment.valuators << valuator

View File

@@ -216,8 +216,10 @@ feature 'Valuation budget investments' do
feature 'Valuate' do feature 'Valuate' do
let(:admin) { create(:administrator) } let(:admin) { create(:administrator) }
let(:investment) do let(:investment) do
create(:budget_investment, budget: budget, price: nil, group = create(:budget_group, budget: budget)
administrator: admin) heading = create(:budget_heading, group: group)
create(:budget_investment, heading: heading, group: group, budget: budget, price: nil,
administrator: admin)
end end
background do background do
@@ -410,9 +412,7 @@ feature 'Valuation budget investments' do
scenario 'not visible to valuators when budget is not valuating' do scenario 'not visible to valuators when budget is not valuating' do
budget.update(phase: 'publishing_prices') budget.update(phase: 'publishing_prices')
investment = create(:budget_investment, investment = create(:budget_investment, budget: budget)
:visible_to_valuators,
budget: budget)
investment.valuators << [valuator] investment.valuators << [valuator]
login_as(valuator.user) login_as(valuator.user)
@@ -428,9 +428,7 @@ feature 'Valuation budget investments' do
admin = create(:administrator, user: user) admin = create(:administrator, user: user)
valuator = create(:valuator, user: user) valuator = create(:valuator, user: user)
investment = create(:budget_investment, investment = create(:budget_investment, budget: budget)
:visible_to_valuators,
budget: budget)
investment.valuators << [valuator] investment.valuators << [valuator]