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