Commit 99b27e69 authored by Vitali Tatarintev's avatar Vitali Tatarintev

Utilize Rubocop's Include for BeSuccessMatcher

Use Rubocop's Include
instead of manually checking the matcher in controllers specs.
parent b61d26f4
...@@ -265,3 +265,11 @@ RSpec/EnvAssignment: ...@@ -265,3 +265,11 @@ RSpec/EnvAssignment:
- 'ee/spec/**/rails_helper.rb' - 'ee/spec/**/rails_helper.rb'
- 'spec/**/spec_helper.rb' - 'spec/**/spec_helper.rb'
- 'ee/spec/**/spec_helper.rb' - 'ee/spec/**/spec_helper.rb'
RSpec/BeSuccessMatcher:
Enabled: true
Include:
- 'spec/controllers/**/*'
- 'ee/spec/controllers/**/*'
- 'spec/support/shared_examples/controllers/**/*'
- 'ee/spec/support/shared_examples/controllers/**/*'
- 'spec/support/controllers/**/*'
...@@ -41,7 +41,6 @@ module RuboCop ...@@ -41,7 +41,6 @@ module RuboCop
end end
def on_send(node) def on_send(node)
return unless in_controller_spec?(node)
return unless be_success_usage?(node) return unless be_success_usage?(node)
add_offense(node, location: :expression, message: MESSAGE) add_offense(node, location: :expression, message: MESSAGE)
......
...@@ -2,7 +2,6 @@ module RuboCop ...@@ -2,7 +2,6 @@ module RuboCop
module SpecHelpers module SpecHelpers
SPEC_HELPERS = %w[fast_spec_helper.rb rails_helper.rb spec_helper.rb].freeze SPEC_HELPERS = %w[fast_spec_helper.rb rails_helper.rb spec_helper.rb].freeze
MIGRATION_SPEC_DIRECTORIES = ['spec/migrations', 'spec/lib/gitlab/background_migration'].freeze MIGRATION_SPEC_DIRECTORIES = ['spec/migrations', 'spec/lib/gitlab/background_migration'].freeze
CONTROLLER_SPEC_DIRECTORIES = ['spec/controllers', 'spec/support/shared_examples/controllers'].freeze
# Returns true if the given node originated from the spec directory. # Returns true if the given node originated from the spec directory.
def in_spec?(node) def in_spec?(node)
...@@ -27,20 +26,5 @@ module RuboCop ...@@ -27,20 +26,5 @@ module RuboCop
in_spec?(node) && in_spec?(node) &&
path.start_with?(*migration_directories) path.start_with?(*migration_directories)
end end
def controller_directories
@controller_directories ||= CONTROLLER_SPEC_DIRECTORIES.map do |dir|
pwd = RuboCop::PathUtil.pwd
[File.join(pwd, dir), File.join(pwd, 'ee', dir)]
end.flatten
end
# Returns true if the given node originated from a controller spec.
def in_controller_spec?(node)
path = node.location.expression.source_buffer.name
in_spec?(node) &&
path.start_with?(*controller_directories)
end
end end
end end
...@@ -59,35 +59,17 @@ describe RuboCop::Cop::RSpec::BeSuccessMatcher do ...@@ -59,35 +59,17 @@ describe RuboCop::Cop::RSpec::BeSuccessMatcher do
end end
end end
context 'in a controller spec file' do CODE_EXAMPLES.each do |code_example|
before do context "using #{code_example[:bad]} call" do
allow(cop).to receive(:in_controller_spec?).and_return(true) it_behaves_like 'an offensive be_success call', code_example[:bad]
it_behaves_like 'an autocorrected be_success call', code_example[:bad], code_example[:good]
end end
CODE_EXAMPLES.each do |code_example| context "using #{code_example[:good]} call" do
context "using #{code_example[:bad]} call" do it 'does not register an offense' do
it_behaves_like 'an offensive be_success call', code_example[:bad] inspect_source(code_example[:good])
it_behaves_like 'an autocorrected be_success call', code_example[:bad], code_example[:good]
end
context "using #{code_example[:good]} call" do
it 'does not register an offense' do
inspect_source(code_example[:good])
expect(cop.offenses.size).to eq(0)
end
end
end
end
context 'outside of a controller spec file' do
CODE_EXAMPLES.each do |code_example|
context "using #{code_example[:bad]} call" do
it 'does not register an offense' do
inspect_source(code_example[:bad])
expect(cop.offenses.size).to eq(0) expect(cop.offenses.size).to eq(0)
end
end end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment