Simplify adding investments to ballots in specs

This commit is contained in:
Javi Martín
2019-09-28 20:25:32 +02:00
parent c34ebc9a53
commit e2b536e8f8
3 changed files with 21 additions and 14 deletions

View File

@@ -13,11 +13,8 @@ describe Budget::Ballot do
it "is not valid with the same investment twice" do
budget = create(:budget)
heading = create(:budget_heading, budget: budget)
investment = create(:budget_investment, :selected, heading: heading)
ballot = create(:budget_ballot, budget: budget)
ballot.investments << investment
investment = create(:budget_investment, :selected, budget: budget)
ballot = create(:budget_ballot, budget: budget.reload, investments: [investment])
expect { ballot.investments << investment }.to raise_error(ActiveRecord::RecordNotUnique)
end
@@ -103,16 +100,14 @@ describe Budget::Ballot do
it "returns the heading with balloted investments for a group" do
budget = create(:budget)
ballot = create(:budget_ballot, budget: budget)
group = create(:budget_group, budget: budget)
heading1 = create(:budget_heading, group: group)
heading2 = create(:budget_heading, group: group)
inv1 = create(:budget_investment, :selected, heading: heading1)
inv2 = create(:budget_investment, :selected, heading: heading2)
ballot = create(:budget_ballot, budget: budget)
ballot.investments << inv2
create(:budget_investment, :selected, heading: heading1)
create(:budget_investment, :selected, heading: heading2, ballots: [ballot])
expect(ballot.heading_for_group(group)).to eq heading2
end

View File

@@ -976,8 +976,7 @@ describe Budget::Investment do
inv1 = create(:budget_investment, :selected, budget: budget, heading: california)
inv2 = create(:budget_investment, :selected, budget: budget, heading: new_york)
ballot = create(:budget_ballot, user: user, budget: budget)
ballot.investments << inv1
ballot = create(:budget_ballot, user: user, budget: budget, investments: [inv1])
expect(inv2.reason_for_not_being_ballotable_by(user, ballot)).to eq(:different_heading_assigned_html)
end
@@ -989,8 +988,7 @@ describe Budget::Investment do
inv1 = create(:budget_investment, :selected, budget: budget, heading: carabanchel, price: 30)
inv2 = create(:budget_investment, :selected, budget: budget, heading: carabanchel, price: 10)
ballot = create(:budget_ballot, user: user, budget: budget)
ballot.investments << inv1
ballot = create(:budget_ballot, user: user, budget: budget, investments: [inv1])
expect(inv2.reason_for_not_being_ballotable_by(user, ballot)).to eq(:not_enough_money_html)
end