Add and apply RepeatedExampleGroupDescription rule

This rule was added in rubocop-rspec 1.38.0. Thanks to it we've detected
we had one method tested in two different places.
This commit is contained in:
Javi Martín
2020-09-27 20:58:53 +02:00
parent f4a6830a1b
commit cef54b4e59
2 changed files with 74 additions and 77 deletions

View File

@@ -368,6 +368,9 @@ RSpec/RepeatedExample:
RSpec/RepeatedExampleGroupBody:
Enabled: true
RSpec/RepeatedExampleGroupDescription:
Enabled: true
RSpec/ScatteredLet:
Enabled: true

View File

@@ -408,10 +408,9 @@ describe Budget::Investment do
end
end
describe "scoped_filter" do
let!(:budget) { create(:budget, slug: "budget_slug") }
let!(:heading) { create(:budget_heading, budget: budget) }
let!(:investment) { create(:budget_investment, :feasible, heading: heading) }
describe ".scoped_filter" do
let(:budget) { create(:budget, :balloting, slug: "budget_slug") }
let(:investment) { create(:budget_investment, budget: budget) }
it "finds budget by id or slug" do
results = Budget::Investment.scoped_filter({ budget_id: budget.id }, nil)
@@ -427,6 +426,74 @@ describe Budget::Investment do
result = Budget::Investment.scoped_filter({ budget_id: "wrong_budget" }, nil)
expect(result).to be_empty
end
describe "with without_admin filter" do
let(:params) { { advanced_filters: ["without_admin"], budget_id: budget.id } }
it "returns only investment without admin" do
create(:budget_investment,
:with_administrator,
budget: budget)
investment2 = create(:budget_investment, budget: budget)
expect(Budget::Investment.scoped_filter(params, "all")).to eq([investment2])
end
end
describe "with without_valuator filter" do
let(:params) { { advanced_filters: ["without_valuator"], budget_id: budget.id } }
it "returns only investment without valuator" do
create(:budget_investment,
:with_valuator,
budget: budget)
investment2 = create(:budget_investment,
:with_administrator,
budget: budget)
investment3 = create(:budget_investment,
budget: budget)
expect(Budget::Investment.scoped_filter(params, "all"))
.to contain_exactly(investment2, investment3)
end
end
describe "with under_valuation filter" do
let(:params) { { advanced_filters: ["under_valuation"], budget_id: budget.id } }
it "returns only investment under valuation" do
investment1 = create(:budget_investment, :with_administrator, :open, :with_valuator,
budget: budget)
create(:budget_investment, :with_administrator, budget: budget)
create(:budget_investment, budget: budget)
expect(Budget::Investment.scoped_filter(params, "all")).to eq([investment1])
end
end
describe "with valuation_finished filter" do
let(:params) { { advanced_filters: ["valuation_finished"], budget_id: budget.id } }
it "returns only investment with valuation finished" do
investment1 = create(:budget_investment,
:selected,
budget: budget)
create(:budget_investment,
:with_administrator,
budget: budget)
create(:budget_investment,
budget: budget)
expect(Budget::Investment.scoped_filter(params, "all")).to eq([investment1])
end
end
describe "with winners filter" do
let(:params) { { advanced_filters: ["winners"], budget_id: budget.id } }
it "returns only investment winners" do
investment1 = create(:budget_investment, :winner, :finished, budget: budget)
create(:budget_investment, :with_administrator, budget: budget)
create(:budget_investment, budget: budget)
expect(Budget::Investment.scoped_filter(params, "all")).to eq([investment1])
end
end
end
describe "scopes" do
@@ -1232,79 +1299,6 @@ describe Budget::Investment do
end
end
describe "scoped_filter" do
let(:budget) { create(:budget, :balloting) }
let(:investment) { create(:budget_investment, budget: budget) }
describe "with without_admin filter" do
let(:params) { { advanced_filters: ["without_admin"], budget_id: budget.id } }
it "returns only investment without admin" do
create(:budget_investment,
:with_administrator,
budget: budget)
investment2 = create(:budget_investment, budget: budget)
expect(Budget::Investment.scoped_filter(params, "all")).to eq([investment2])
end
end
describe "with without_valuator filter" do
let(:params) { { advanced_filters: ["without_valuator"], budget_id: budget.id } }
it "returns only investment without valuator" do
create(:budget_investment,
:with_valuator,
budget: budget)
investment2 = create(:budget_investment,
:with_administrator,
budget: budget)
investment3 = create(:budget_investment,
budget: budget)
expect(Budget::Investment.scoped_filter(params, "all"))
.to contain_exactly(investment2, investment3)
end
end
describe "with under_valuation filter" do
let(:params) { { advanced_filters: ["under_valuation"], budget_id: budget.id } }
it "returns only investment under valuation" do
investment1 = create(:budget_investment, :with_administrator, :open, :with_valuator,
budget: budget)
create(:budget_investment, :with_administrator, budget: budget)
create(:budget_investment, budget: budget)
expect(Budget::Investment.scoped_filter(params, "all")).to eq([investment1])
end
end
describe "with valuation_finished filter" do
let(:params) { { advanced_filters: ["valuation_finished"], budget_id: budget.id } }
it "returns only investment with valuation finished" do
investment1 = create(:budget_investment,
:selected,
budget: budget)
create(:budget_investment,
:with_administrator,
budget: budget)
create(:budget_investment,
budget: budget)
expect(Budget::Investment.scoped_filter(params, "all")).to eq([investment1])
end
end
describe "with winners filter" do
let(:params) { { advanced_filters: ["winners"], budget_id: budget.id } }
it "returns only investment winners" do
investment1 = create(:budget_investment, :winner, :finished, budget: budget)
create(:budget_investment, :with_administrator, budget: budget)
create(:budget_investment, budget: budget)
expect(Budget::Investment.scoped_filter(params, "all")).to eq([investment1])
end
end
end
describe "admin_and_valuator_users_associated" do
let(:investment) { create(:budget_investment) }
let(:valuator_group) { create(:valuator_group) }