Use budget phase traits

We were already using them in many places, but not everywhere.
This commit is contained in:
Javi Martín
2019-09-21 16:48:35 +02:00
parent cced12c3a0
commit aeb1655961
15 changed files with 51 additions and 51 deletions

View File

@@ -5,10 +5,10 @@ describe ApplicationController do
describe "#current_budget" do describe "#current_budget" do
it "returns the last budget that is not in draft phase" do it "returns the last budget that is not in draft phase" do
old_budget = create(:budget, phase: "finished", created_at: 2.years.ago) old_budget = create(:budget, :finished, created_at: 2.years.ago)
previous_budget = create(:budget, phase: "accepting", created_at: 1.year.ago) previous_budget = create(:budget, :accepting, created_at: 1.year.ago)
current_budget = create(:budget, phase: "accepting", created_at: 1.month.ago) current_budget = create(:budget, :accepting, created_at: 1.month.ago)
next_budget = create(:budget, phase: "drafting", created_at: 1.week.ago) next_budget = create(:budget, :drafting, created_at: 1.week.ago)
budget = subject.instance_eval { current_budget } budget = subject.instance_eval { current_budget }
expect(budget).to eq(current_budget) expect(budget).to eq(current_budget)

View File

@@ -2,7 +2,7 @@ require "rails_helper"
describe "Admin budget groups" do describe "Admin budget groups" do
let(:budget) { create(:budget, phase: "drafting") } let(:budget) { create(:budget, :drafting) }
before do before do
admin = create(:administrator) admin = create(:administrator)

View File

@@ -2,7 +2,7 @@ require "rails_helper"
describe "Admin budget headings" do describe "Admin budget headings" do
let(:budget) { create(:budget, phase: "drafting") } let(:budget) { create(:budget, :drafting) }
let(:group) { create(:budget_group, budget: budget) } let(:group) { create(:budget_group, budget: budget) }
before do before do

View File

@@ -264,7 +264,7 @@ describe "Admin budgets" do
context "Calculate Budget's Winner Investments" do context "Calculate Budget's Winner Investments" do
scenario "For a Budget in reviewing balloting", :js do scenario "For a Budget in reviewing balloting", :js do
budget = create(:budget, phase: "reviewing_ballots") budget = create(:budget, :reviewing_ballots)
heading = create(:budget_heading, budget: budget, price: 4) heading = create(:budget_heading, budget: budget, price: 4)
unselected = create(:budget_investment, :unselected, heading: heading, price: 1, unselected = create(:budget_investment, :unselected, heading: heading, price: 1,
ballot_lines_count: 3) ballot_lines_count: 3)

View File

@@ -260,7 +260,7 @@ describe "Admin download settings" do
end end
context "Download budgets" do context "Download budgets" do
let(:budget_finished) { create(:budget, phase: "finished") } let(:budget_finished) { create(:budget, :finished) }
let(:heading) { create(:budget_heading, budget: budget_finished, price: 1000) } let(:heading) { create(:budget_heading, budget: budget_finished, price: 1000) }
let(:investment1) { create(:budget_investment, let(:investment1) { create(:budget_investment,

View File

@@ -3,7 +3,7 @@ require "rails_helper"
describe "Ballots" do describe "Ballots" do
let!(:user) { create(:user, :level_two) } let!(:user) { create(:user, :level_two) }
let!(:budget) { create(:budget, phase: "balloting") } let!(:budget) { create(:budget, :balloting) }
let!(:states) { create(:budget_group, budget: budget, name: "States") } let!(:states) { create(:budget_group, budget: budget, name: "States") }
let!(:california) { create(:budget_heading, group: states, name: "California", price: 1000) } let!(:california) { create(:budget_heading, group: states, name: "California", price: 1000) }
let!(:new_york) { create(:budget_heading, group: states, name: "New York", price: 1000000) } let!(:new_york) { create(:budget_heading, group: states, name: "New York", price: 1000000) }

View File

@@ -4,7 +4,7 @@ describe "Votes" do
describe "Investments" do describe "Investments" do
let(:manuela) { create(:user, verified_at: Time.current) } let(:manuela) { create(:user, verified_at: Time.current) }
let(:budget) { create(:budget, phase: "selecting") } let(:budget) { create(:budget, :selecting) }
let(:group) { create(:budget_group, budget: budget) } let(:group) { create(:budget_group, budget: budget) }
let(:heading) { create(:budget_heading, group: group) } let(:heading) { create(:budget_heading, group: group) }

View File

@@ -3,7 +3,7 @@ require "rails_helper"
describe "Budget Investments" do describe "Budget Investments" do
let(:manager) { create(:manager) } let(:manager) { create(:manager) }
let(:budget) { create(:budget, phase: "selecting", name: "2033", slug: "budget_slug") } let(:budget) { create(:budget, :selecting, name: "2033", slug: "budget_slug") }
let(:group) { create(:budget_group, budget: budget, name: "Whole city") } let(:group) { create(:budget_group, budget: budget, name: "Whole city") }
let(:heading) { create(:budget_heading, group: group, name: "Health") } let(:heading) { create(:budget_heading, group: group, name: "Health") }
@@ -208,13 +208,13 @@ describe "Budget Investments" do
end end
scenario "Listing - managers can see budgets in accepting phase" do scenario "Listing - managers can see budgets in accepting phase" do
accepting_budget = create(:budget, phase: "accepting") accepting_budget = create(:budget, :accepting)
reviewing_budget = create(:budget, phase: "reviewing") reviewing_budget = create(:budget, :reviewing)
selecting_budget = create(:budget, phase: "selecting") selecting_budget = create(:budget, :selecting)
valuating_budget = create(:budget, phase: "valuating") valuating_budget = create(:budget, :valuating)
balloting_budget = create(:budget, phase: "balloting") balloting_budget = create(:budget, :balloting)
reviewing_ballots_budget = create(:budget, phase: "reviewing_ballots") reviewing_ballots_budget = create(:budget, :reviewing_ballots)
finished = create(:budget, phase: "finished") finished = create(:budget, :finished)
user = create(:user, :level_two) user = create(:user, :level_two)
login_managed_user(user) login_managed_user(user)
@@ -232,13 +232,13 @@ describe "Budget Investments" do
end end
scenario "Listing - admins can see budgets in accepting, reviewing and selecting phases" do scenario "Listing - admins can see budgets in accepting, reviewing and selecting phases" do
accepting_budget = create(:budget, phase: "accepting") accepting_budget = create(:budget, :accepting)
reviewing_budget = create(:budget, phase: "reviewing") reviewing_budget = create(:budget, :reviewing)
selecting_budget = create(:budget, phase: "selecting") selecting_budget = create(:budget, :selecting)
valuating_budget = create(:budget, phase: "valuating") valuating_budget = create(:budget, :valuating)
balloting_budget = create(:budget, phase: "balloting") balloting_budget = create(:budget, :balloting)
reviewing_ballots_budget = create(:budget, phase: "reviewing_ballots") reviewing_ballots_budget = create(:budget, :reviewing_ballots)
finished = create(:budget, phase: "finished") finished = create(:budget, :finished)
visit root_path visit root_path
click_link "Sign out" click_link "Sign out"

View File

@@ -116,7 +116,7 @@ describe "Users" do
scenario "Show alert when user wants to delete a budget investment", :js do scenario "Show alert when user wants to delete a budget investment", :js do
user = create(:user, :level_two) user = create(:user, :level_two)
budget = create(:budget, phase: "accepting") budget = create(:budget, :accepting)
budget_investment = create(:budget_investment, author_id: user.id, budget: budget) budget_investment = create(:budget_investment, author_id: user.id, budget: budget)
login_as(user) login_as(user)

View File

@@ -76,8 +76,8 @@ describe Abilities::Administrator do
it { should be_able_to(:update, Budget::Investment) } it { should be_able_to(:update, Budget::Investment) }
it { should be_able_to(:hide, Budget::Investment) } it { should be_able_to(:hide, Budget::Investment) }
it { should be_able_to(:valuate, create(:budget_investment, budget: create(:budget, phase: "valuating"))) } it { should be_able_to(:valuate, create(:budget_investment, budget: create(:budget, :valuating))) }
it { should be_able_to(:valuate, create(:budget_investment, budget: create(:budget, phase: "finished"))) } it { should be_able_to(:valuate, create(:budget_investment, budget: create(:budget, :finished))) }
it { should be_able_to(:destroy, proposal_image) } it { should be_able_to(:destroy, proposal_image) }
it { should be_able_to(:destroy, proposal_document) } it { should be_able_to(:destroy, proposal_document) }

View File

@@ -15,10 +15,10 @@ describe Abilities::Common do
let(:own_comment) { create(:comment, author: user) } let(:own_comment) { create(:comment, author: user) }
let(:own_proposal) { create(:proposal, author: user) } let(:own_proposal) { create(:proposal, author: user) }
let(:accepting_budget) { create(:budget, phase: "accepting") } let(:accepting_budget) { create(:budget, :accepting) }
let(:reviewing_budget) { create(:budget, phase: "reviewing") } let(:reviewing_budget) { create(:budget, :reviewing) }
let(:selecting_budget) { create(:budget, phase: "selecting") } let(:selecting_budget) { create(:budget, :selecting) }
let(:balloting_budget) { create(:budget, phase: "balloting") } let(:balloting_budget) { create(:budget, :balloting) }
let(:investment_in_accepting_budget) { create(:budget_investment, budget: accepting_budget) } let(:investment_in_accepting_budget) { create(:budget_investment, budget: accepting_budget) }
let(:investment_in_reviewing_budget) { create(:budget_investment, budget: reviewing_budget) } let(:investment_in_reviewing_budget) { create(:budget_investment, budget: reviewing_budget) }

View File

@@ -71,7 +71,7 @@ describe Abilities::Everyone do
context "when accessing budget results" do context "when accessing budget results" do
context "budget is not finished" do context "budget is not finished" do
let(:budget) { create(:budget, phase: "reviewing_ballots", results_enabled: true) } let(:budget) { create(:budget, :reviewing_ballots, results_enabled: true) }
it { should_not be_able_to(:read_results, budget) } it { should_not be_able_to(:read_results, budget) }
end end
@@ -91,19 +91,19 @@ describe Abilities::Everyone do
context "when accessing budget stats" do context "when accessing budget stats" do
context "supports phase is not finished" do context "supports phase is not finished" do
let(:budget) { create(:budget, phase: "selecting", stats_enabled: true) } let(:budget) { create(:budget, :selecting, stats_enabled: true) }
it { should_not be_able_to(:read_stats, budget) } it { should_not be_able_to(:read_stats, budget) }
end end
context "supports phase is finished" do context "supports phase is finished" do
let(:budget) { create(:budget, phase: "valuating", stats_enabled: true) } let(:budget) { create(:budget, :valuating, stats_enabled: true) }
it { should be_able_to(:read_stats, budget) } it { should be_able_to(:read_stats, budget) }
end end
context "stats disabled" do context "stats disabled" do
let(:budget) { create(:budget, phase: "valuating", stats_enabled: false) } let(:budget) { create(:budget, :valuating, stats_enabled: false) }
it { should_not be_able_to(:read_stats, budget) } it { should_not be_able_to(:read_stats, budget) }
end end

View File

@@ -8,9 +8,9 @@ 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, phase: "valuating")) } let(:assigned_investment) { create(:budget_investment, budget: create(:budget, :valuating)) }
let(:group_assigned_investment) { create(:budget_investment, budget: create(:budget, phase: "valuating")) } let(:group_assigned_investment) { create(:budget_investment, budget: create(:budget, :valuating)) }
let(:finished_assigned_investment) { create(:budget_investment, budget: create(:budget, phase: "finished")) } let(:finished_assigned_investment) { create(:budget_investment, budget: create(:budget, :finished)) }
before do before do
assigned_investment.valuators << valuator assigned_investment.valuators << valuator

View File

@@ -130,7 +130,7 @@ describe Budget::Investment do
describe "#should_show_votes?" do describe "#should_show_votes?" do
it "returns true in selecting phase" do it "returns true in selecting phase" do
budget = create(:budget, phase: "selecting") budget = create(:budget, :selecting)
investment = create(:budget_investment, budget: budget) investment = create(:budget_investment, budget: budget)
expect(investment.should_show_votes?).to eq(true) expect(investment.should_show_votes?).to eq(true)
@@ -148,7 +148,7 @@ describe Budget::Investment do
describe "#should_show_vote_count?" do describe "#should_show_vote_count?" do
it "returns true in valuating phase" do it "returns true in valuating phase" do
budget = create(:budget, phase: "valuating") budget = create(:budget, :valuating)
investment = create(:budget_investment, budget: budget) investment = create(:budget_investment, budget: budget)
expect(investment.should_show_vote_count?).to eq(true) expect(investment.should_show_vote_count?).to eq(true)
@@ -166,14 +166,14 @@ describe Budget::Investment do
describe "#should_show_ballots?" do describe "#should_show_ballots?" do
it "returns true in balloting phase for selected investments" do it "returns true in balloting phase for selected investments" do
budget = create(:budget, phase: "balloting") budget = create(:budget, :balloting)
investment = create(:budget_investment, :selected, budget: budget) investment = create(:budget_investment, :selected, budget: budget)
expect(investment.should_show_ballots?).to eq(true) expect(investment.should_show_ballots?).to eq(true)
end end
it "returns false for unselected investments" do it "returns false for unselected investments" do
budget = create(:budget, phase: "balloting") budget = create(:budget, :balloting)
investment = create(:budget_investment, :unselected, budget: budget) investment = create(:budget_investment, :unselected, budget: budget)
expect(investment.should_show_ballots?).to eq(false) expect(investment.should_show_ballots?).to eq(false)
@@ -1050,7 +1050,7 @@ describe Budget::Investment do
describe "Reclassification" do describe "Reclassification" do
let(:budget) { create(:budget, phase: "balloting") } let(:budget) { create(:budget, :balloting) }
let(:group) { create(:budget_group, budget: budget) } let(:group) { create(:budget_group, budget: budget) }
let(:heading1) { create(:budget_heading, group: group) } let(:heading1) { create(:budget_heading, group: group) }
let(:heading2) { create(:budget_heading, group: group) } let(:heading2) { create(:budget_heading, group: group) }
@@ -1189,7 +1189,7 @@ describe Budget::Investment do
end end
describe "scoped_filter" do describe "scoped_filter" do
let(:budget) { create(:budget, phase: "balloting") } let(:budget) { create(:budget, :balloting) }
let(:investment) { create(:budget_investment, budget: budget) } let(:investment) { create(:budget_investment, budget: budget) }
describe "with without_admin filter" do describe "with without_admin filter" do

View File

@@ -154,22 +154,22 @@ describe Budget do
describe "#current" do describe "#current" do
it "returns nil if there is only one budget and it is still in drafting phase" do it "returns nil if there is only one budget and it is still in drafting phase" do
budget = create(:budget, phase: "drafting") create(:budget, :drafting)
expect(Budget.current).to eq(nil) expect(Budget.current).to eq(nil)
end end
it "returns the budget if there is only one and not in drafting phase" do it "returns the budget if there is only one and not in drafting phase" do
budget = create(:budget, phase: "accepting") budget = create(:budget, :accepting)
expect(Budget.current).to eq(budget) expect(Budget.current).to eq(budget)
end end
it "returns the last budget created that is not in drafting phase" do it "returns the last budget created that is not in drafting phase" do
old_budget = create(:budget, phase: "finished", created_at: 2.years.ago) old_budget = create(:budget, :finished, created_at: 2.years.ago)
previous_budget = create(:budget, phase: "accepting", created_at: 1.year.ago) previous_budget = create(:budget, :accepting, created_at: 1.year.ago)
current_budget = create(:budget, phase: "accepting", created_at: 1.month.ago) current_budget = create(:budget, :accepting, created_at: 1.month.ago)
next_budget = create(:budget, phase: "drafting", created_at: 1.week.ago) next_budget = create(:budget, :drafting, created_at: 1.week.ago)
expect(Budget.current).to eq(current_budget) expect(Budget.current).to eq(current_budget)
end end