Directly assign valuators in specs
Creating a record and then assigning an association makes the code even harder to follow.
This commit is contained in:
@@ -80,10 +80,6 @@ describe "Admin budget investments" do
|
||||
end
|
||||
|
||||
scenario "Display admin and valuator assignments" do
|
||||
budget_investment1 = create(:budget_investment, budget: budget)
|
||||
budget_investment2 = create(:budget_investment, budget: budget)
|
||||
budget_investment3 = create(:budget_investment, budget: budget)
|
||||
|
||||
olga = create(:user, username: "Olga")
|
||||
miriam = create(:user, username: "Miriam")
|
||||
valuator1 = create(:valuator, user: olga, description: "Valuator Olga")
|
||||
@@ -91,9 +87,10 @@ describe "Admin budget investments" do
|
||||
valuator_group = create(:valuator_group, name: "Health")
|
||||
admin = create(:administrator, user: create(:user, username: "Gema"))
|
||||
|
||||
budget_investment1.valuators << valuator1
|
||||
budget_investment2.valuators << valuator1
|
||||
budget_investment2.valuators << valuator2
|
||||
budget_investment1 = create(:budget_investment, budget: budget, valuators: [valuator1])
|
||||
budget_investment2 = create(:budget_investment, budget: budget, valuators: [valuator1, valuator2])
|
||||
budget_investment3 = create(:budget_investment, budget: budget)
|
||||
|
||||
budget_investment2.valuator_groups << valuator_group
|
||||
|
||||
visit admin_budget_budget_investments_path(budget_id: budget.id)
|
||||
@@ -212,9 +209,7 @@ describe "Admin budget investments" do
|
||||
user = create(:user)
|
||||
valuator = create(:valuator, user: user, description: "Valuator 1")
|
||||
|
||||
budget_investment = create(:budget_investment, title: "Realocate visitors", budget: budget)
|
||||
budget_investment.valuators << valuator
|
||||
|
||||
create(:budget_investment, title: "Realocate visitors", budget: budget, valuators: [valuator])
|
||||
create(:budget_investment, title: "Destroy the city", budget: budget)
|
||||
|
||||
visit admin_budget_budget_investments_path(budget_id: budget.id)
|
||||
@@ -981,8 +976,9 @@ describe "Admin budget investments" do
|
||||
unfeasibility_explanation: "It is impossible",
|
||||
price: 1234,
|
||||
price_first_year: 1000,
|
||||
administrator: administrator)
|
||||
budget_investment.valuators << valuator
|
||||
administrator: administrator,
|
||||
valuators: [valuator]
|
||||
)
|
||||
|
||||
visit admin_budget_budget_investments_path(budget_investment.budget)
|
||||
|
||||
@@ -1656,12 +1652,10 @@ describe "Admin budget investments" do
|
||||
end
|
||||
|
||||
scenario "Showing the valuating checkbox" do
|
||||
investment1 = create(:budget_investment, :with_administrator, :visible_to_valuators, budget: budget)
|
||||
investment2 = create(:budget_investment, :with_administrator, :invisible_to_valuators, budget: budget)
|
||||
|
||||
investment1.valuators << create(:valuator)
|
||||
investment2.valuators << create(:valuator)
|
||||
investment2.valuators << create(:valuator)
|
||||
investment1 = create(:budget_investment, :with_administrator, :visible_to_valuators,
|
||||
budget: budget, valuators: [create(:valuator)])
|
||||
investment2 = create(:budget_investment, :with_administrator, :invisible_to_valuators,
|
||||
budget: budget, valuators: [create(:valuator), create(:valuator)])
|
||||
|
||||
visit admin_budget_budget_investments_path(budget)
|
||||
|
||||
|
||||
@@ -5,10 +5,9 @@ describe "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(:investment) { create(:budget_investment, budget: budget, valuators: [valuator_user.valuator]) }
|
||||
|
||||
before do
|
||||
investment.valuators << valuator_user.valuator
|
||||
login_as(valuator_user)
|
||||
end
|
||||
|
||||
|
||||
@@ -373,10 +373,8 @@ describe "Emails" do
|
||||
|
||||
scenario "Unfeasible investment" do
|
||||
budget.update(phase: "valuating")
|
||||
investment = create(:budget_investment, author: author, budget: budget)
|
||||
|
||||
valuator = create(:valuator)
|
||||
investment.valuators << valuator
|
||||
investment = create(:budget_investment, author: author, budget: budget, valuators: [valuator])
|
||||
|
||||
login_as(valuator.user)
|
||||
visit edit_valuation_budget_budget_investment_path(budget, investment)
|
||||
|
||||
@@ -49,11 +49,9 @@ describe "Valuation budget investments" do
|
||||
|
||||
describe "Index" do
|
||||
scenario "Index shows budget investments assigned to current valuator" do
|
||||
investment1 = create(:budget_investment, :visible_to_valuators, budget: budget)
|
||||
investment1 = create(:budget_investment, :visible_to_valuators, budget: budget, valuators: [valuator])
|
||||
investment2 = create(:budget_investment, :visible_to_valuators, budget: budget)
|
||||
|
||||
investment1.valuators << valuator
|
||||
|
||||
visit valuation_budget_budget_investments_path(budget)
|
||||
|
||||
expect(page).to have_content(investment1.title)
|
||||
@@ -61,11 +59,9 @@ describe "Valuation budget investments" do
|
||||
end
|
||||
|
||||
scenario "Index shows no budget investment to admins no valuators" do
|
||||
investment1 = create(:budget_investment, :visible_to_valuators, budget: budget)
|
||||
investment1 = create(:budget_investment, :visible_to_valuators, budget: budget, valuators: [valuator])
|
||||
investment2 = create(:budget_investment, :visible_to_valuators, budget: budget)
|
||||
|
||||
investment1.valuators << valuator
|
||||
|
||||
logout
|
||||
login_as create(:administrator).user
|
||||
visit valuation_budget_budget_investments_path(budget)
|
||||
@@ -76,16 +72,15 @@ describe "Valuation budget investments" do
|
||||
|
||||
scenario "Index orders budget investments by votes" do
|
||||
investment10 = create(:budget_investment, :visible_to_valuators, budget: budget,
|
||||
valuators: [valuator],
|
||||
cached_votes_up: 10)
|
||||
investment100 = create(:budget_investment, :visible_to_valuators, budget: budget,
|
||||
valuators: [valuator],
|
||||
cached_votes_up: 100)
|
||||
investment1 = create(:budget_investment, :visible_to_valuators, budget: budget,
|
||||
valuators: [valuator],
|
||||
cached_votes_up: 1)
|
||||
|
||||
investment1.valuators << valuator
|
||||
investment10.valuators << valuator
|
||||
investment100.valuators << valuator
|
||||
|
||||
visit valuation_budget_budget_investments_path(budget)
|
||||
|
||||
expect(investment100.title).to appear_before(investment10.title)
|
||||
@@ -95,8 +90,7 @@ describe "Valuation budget investments" do
|
||||
scenario "Index displays investments paginated" do
|
||||
per_page = Kaminari.config.default_per_page
|
||||
(per_page + 2).times do
|
||||
investment = create(:budget_investment, :visible_to_valuators, budget: budget)
|
||||
investment.valuators << valuator
|
||||
create(:budget_investment, :visible_to_valuators, budget: budget, valuators: [valuator])
|
||||
end
|
||||
|
||||
visit valuation_budget_budget_investments_path(budget)
|
||||
@@ -204,13 +198,10 @@ describe "Valuation budget investments" do
|
||||
end
|
||||
|
||||
scenario "Index filtering by valuation status" do
|
||||
valuating = create(:budget_investment, :visible_to_valuators, budget: budget,
|
||||
title: "Ongoing valuation")
|
||||
valuated = create(:budget_investment, :visible_to_valuators, :finished,
|
||||
budget: budget,
|
||||
title: "Old idea")
|
||||
valuating.valuators << valuator
|
||||
valuated.valuators << valuator
|
||||
create(:budget_investment, :visible_to_valuators,
|
||||
budget: budget, valuators: [valuator], title: "Ongoing valuation")
|
||||
create(:budget_investment, :visible_to_valuators, :finished,
|
||||
budget: budget, valuators: [valuator], title: "Old idea")
|
||||
|
||||
visit valuation_budget_budget_investments_path(budget)
|
||||
|
||||
@@ -239,11 +230,8 @@ describe "Valuation budget investments" do
|
||||
let(:investment) do
|
||||
create(:budget_investment, :unfeasible, budget: budget, price: 1234,
|
||||
unfeasibility_explanation: "It is impossible",
|
||||
administrator: administrator,)
|
||||
end
|
||||
|
||||
before do
|
||||
investment.valuators << [valuator, second_valuator]
|
||||
administrator: administrator,
|
||||
valuators: [valuator, second_valuator] )
|
||||
end
|
||||
|
||||
scenario "visible for assigned valuators" do
|
||||
@@ -320,11 +308,7 @@ describe "Valuation budget investments" do
|
||||
describe "Valuate" do
|
||||
let(:admin) { create(:administrator) }
|
||||
let(:investment) do
|
||||
create(:budget_investment, budget: budget, price: nil, administrator: admin)
|
||||
end
|
||||
|
||||
before do
|
||||
investment.valuators << valuator
|
||||
create(:budget_investment, budget: budget, price: nil, administrator: admin, valuators: [valuator])
|
||||
end
|
||||
|
||||
scenario "Dossier empty by default" do
|
||||
@@ -521,8 +505,7 @@ describe "Valuation budget investments" do
|
||||
scenario "not visible to valuators when budget is not valuating" do
|
||||
budget.update(phase: "publishing_prices")
|
||||
|
||||
investment = create(:budget_investment, budget: budget)
|
||||
investment.valuators << [valuator]
|
||||
investment = create(:budget_investment, budget: budget, valuators: [valuator])
|
||||
|
||||
login_as(valuator.user)
|
||||
visit edit_valuation_budget_budget_investment_path(budget, investment)
|
||||
@@ -537,8 +520,7 @@ describe "Valuation budget investments" do
|
||||
admin = create(:administrator, user: user)
|
||||
valuator = create(:valuator, user: user)
|
||||
|
||||
investment = create(:budget_investment, budget: budget)
|
||||
investment.valuators << [valuator]
|
||||
investment = create(:budget_investment, budget: budget, valuators: [valuator])
|
||||
|
||||
login_as(admin.user)
|
||||
visit valuation_budget_budget_investment_path(budget, investment)
|
||||
|
||||
@@ -8,17 +8,13 @@ describe Abilities::Valuator do
|
||||
let(:valuator) { create(:valuator) }
|
||||
let(:group) { create(:valuator_group) }
|
||||
let(:non_assigned_investment) { create(:budget_investment) }
|
||||
let(:assigned_investment) { create(:budget_investment, budget: create(:budget, :valuating)) }
|
||||
let(:assigned_investment) { create(:budget_investment, budget: create(:budget, :valuating), valuators: [valuator]) }
|
||||
let(:group_assigned_investment) { create(:budget_investment, budget: create(:budget, :valuating)) }
|
||||
let(:finished_assigned_investment) { create(:budget_investment, budget: create(:budget, :finished)) }
|
||||
let(:finished_assigned_investment) { create(:budget_investment, budget: create(:budget, :finished), valuators: [valuator]) }
|
||||
|
||||
before do
|
||||
assigned_investment.valuators << valuator
|
||||
|
||||
group_assigned_investment.valuator_groups << group
|
||||
valuator.update(valuator_group: group)
|
||||
|
||||
finished_assigned_investment.valuators << valuator
|
||||
end
|
||||
|
||||
it "cannot valuate an assigned investment with a finished valuation" do
|
||||
|
||||
@@ -337,16 +337,12 @@ describe Budget::Investment do
|
||||
|
||||
describe "by_valuator" do
|
||||
it "returns investments assigned to specific valuator" do
|
||||
investment1 = create(:budget_investment)
|
||||
investment2 = create(:budget_investment)
|
||||
investment3 = create(:budget_investment)
|
||||
|
||||
valuator1 = create(:valuator)
|
||||
valuator2 = create(:valuator)
|
||||
|
||||
investment1.valuators << valuator1
|
||||
investment2.valuators << valuator2
|
||||
investment3.valuators << [valuator1, valuator2]
|
||||
investment1 = create(:budget_investment, valuators: [valuator1])
|
||||
investment2 = create(:budget_investment, valuators: [valuator2])
|
||||
investment3 = create(:budget_investment, valuators: [valuator1, valuator2])
|
||||
|
||||
by_valuator = Budget::Investment.by_valuator(valuator1.id)
|
||||
|
||||
@@ -420,10 +416,9 @@ describe Budget::Investment do
|
||||
|
||||
describe "managed" do
|
||||
it "returns all open investments with assigned admin but without assigned valuators" do
|
||||
investment1 = create(:budget_investment, :with_administrator)
|
||||
investment1 = create(:budget_investment, :with_administrator, valuators: [create(:valuator)])
|
||||
investment2 = create(:budget_investment, :with_administrator, :finished)
|
||||
investment3 = create(:budget_investment, :with_administrator)
|
||||
investment1.valuators << create(:valuator)
|
||||
|
||||
managed = Budget::Investment.managed
|
||||
|
||||
@@ -434,11 +429,8 @@ describe Budget::Investment do
|
||||
describe "valuating" do
|
||||
it "returns all investments with assigned valuator but valuation not finished" do
|
||||
investment1 = create(:budget_investment)
|
||||
investment2 = create(:budget_investment)
|
||||
investment3 = create(:budget_investment, :finished)
|
||||
|
||||
investment2.valuators << create(:valuator)
|
||||
investment3.valuators << create(:valuator)
|
||||
investment2 = create(:budget_investment, valuators: [create(:valuator)])
|
||||
investment3 = create(:budget_investment, :finished, valuators: [create(:valuator)])
|
||||
|
||||
valuating = Budget::Investment.valuating
|
||||
|
||||
@@ -462,11 +454,8 @@ describe Budget::Investment do
|
||||
describe "valuation_finished" do
|
||||
it "returns all investments with valuation finished" do
|
||||
investment1 = create(:budget_investment)
|
||||
investment2 = create(:budget_investment)
|
||||
investment3 = create(:budget_investment, :finished)
|
||||
|
||||
investment2.valuators << create(:valuator)
|
||||
investment3.valuators << create(:valuator)
|
||||
investment2 = create(:budget_investment, valuators: [create(:valuator)])
|
||||
investment3 = create(:budget_investment, :finished, valuators: [create(:valuator)])
|
||||
|
||||
valuation_finished = Budget::Investment.valuation_finished
|
||||
|
||||
@@ -1166,9 +1155,8 @@ describe Budget::Investment do
|
||||
describe "with under_valuation filter" do
|
||||
let(:params) { { advanced_filters: ["under_valuation"], budget_id: budget.id } }
|
||||
it "returns only investment under valuation" do
|
||||
valuator1 = create(:valuator)
|
||||
investment1 = create(:budget_investment, :with_administrator, :unfinished, budget: budget)
|
||||
investment1.valuators << valuator1
|
||||
investment1 = create(:budget_investment, :with_administrator, :unfinished,
|
||||
budget: budget, valuators: [create(:valuator)])
|
||||
create(:budget_investment, :with_administrator, budget: budget)
|
||||
create(:budget_investment, budget: budget)
|
||||
|
||||
|
||||
@@ -20,13 +20,10 @@ describe Valuator do
|
||||
|
||||
it "returns investments assigned to a valuator" do
|
||||
valuator = create(:valuator)
|
||||
investment1 = create(:budget_investment)
|
||||
investment2 = create(:budget_investment)
|
||||
investment1 = create(:budget_investment, valuators: [valuator])
|
||||
investment2 = create(:budget_investment, valuators: [valuator])
|
||||
investment3 = create(:budget_investment)
|
||||
|
||||
investment1.valuators << valuator
|
||||
investment2.valuators << valuator
|
||||
|
||||
assigned_investment_ids = valuator.assigned_investment_ids
|
||||
|
||||
expect(assigned_investment_ids).to match_array [investment1.id, investment2.id]
|
||||
|
||||
Reference in New Issue
Block a user