Add and apply ConstantDefinitionInBlock rule

This rule was added in Rubocop 0.91.0. A similar rule named
LeakyConstantDeclaration was added in rubocop-rspec 1.34.0.

Note using the FILENAMES constant did not result in an offense using the
ConstantDefinitionInBlock rule but did result in an offense using the
LeakyConstantDeclaration rule. I've simplified the code to get rid of
the constant; not sure why we were adding a constant with `||=` in the
middle of a spec.
This commit is contained in:
Javi Martín
2020-10-14 12:03:26 +02:00
parent eb02bc756a
commit b27d0a8e92
5 changed files with 31 additions and 17 deletions

View File

@@ -166,6 +166,9 @@ Layout/TrailingWhitespace:
Lint/AmbiguousRegexpLiteral:
Enabled: true
Lint/ConstantDefinitionInBlock:
Enabled: true
Lint/DuplicateMethods:
Enabled: true

View File

@@ -1,10 +1,14 @@
require "rails_helper"
describe ConsulFormBuilder do
class DummyModel
include ActiveModel::Model
OPTIONS = %w[Good Bad Ugly].freeze
attr_accessor :title, :quality
before do
dummy_model = Class.new do
include ActiveModel::Model
attr_accessor :title, :quality
end
stub_const("DummyModel", dummy_model)
stub_const("DummyModel::OPTIONS", %w[Good Bad Ugly].freeze)
end
let(:builder) { ConsulFormBuilder.new(:dummy, DummyModel.new, ActionView::Base.new, {}) }

View File

@@ -1,12 +1,16 @@
require "rails_helper"
describe Statisticable do
class DummyStats
include Statisticable
before do
dummy_stats = Class.new do
include Statisticable
def participants
User.all
def participants
User.all
end
end
stub_const("DummyStats", dummy_stats)
end
let(:stats) { DummyStats.new(nil) }

View File

@@ -235,12 +235,11 @@ shared_examples "nested documentable" do |login_as_name, documentable_factory_na
end
login_as user_to_login
visit send(path, arguments)
FILENAMES ||= %w[clippy empty logo].freeze
send(fill_resource_method_name) if fill_resource_method_name
documentable.class.max_documents_allowed.times.zip(FILENAMES).each do |_n, fn|
documentable_attach_new_file(Rails.root.join("spec/fixtures/files/#{fn}.pdf"))
%w[clippy empty logo].take(documentable.class.max_documents_allowed).each do |filename|
documentable_attach_new_file(Rails.root.join("spec/fixtures/files/#{filename}.pdf"))
end
click_on submit_button

View File

@@ -1,13 +1,17 @@
require "rails_helper"
describe "shared errors" do
class DummyModel
include ActiveModel::Model
attr_accessor :title, :description, :days
before do
dummy_model = Class.new do
include ActiveModel::Model
attr_accessor :title, :description, :days
validates :title, presence: true
validates :description, presence: true, length: { in: 10..100 }
validates :days, numericality: { greater_than: 10 }
validates :title, presence: true
validates :description, presence: true, length: { in: 10..100 }
validates :days, numericality: { greater_than: 10 }
end
stub_const("DummyModel", dummy_model)
end
it "counts the number of fields with errors" do