summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitali Tatarintev <vtatarintev@gitlab.com>2019-08-22 11:57:33 +0200
committerVitali Tatarintev <vtatarintev@gitlab.com>2019-08-28 08:43:47 +0200
commit3a71ab523ebe9e8d30aabbf12e659eb75036d0b5 (patch)
treeac3fa7050f31f2a255c773f814a441a1447e3ae8
parent4f2ac51644754f9a4d4df697ac8984180b0bfdca (diff)
downloadgitlab-ce-3a71ab523ebe9e8d30aabbf12e659eb75036d0b5.tar.gz
Autocorrect `be_success` to `be_successful`
-rw-r--r--rubocop/cop/rspec/be_success_matcher.rb6
-rw-r--r--spec/rubocop/cop/rspec/be_success_matcher_spec.rb10
2 files changed, 16 insertions, 0 deletions
diff --git a/rubocop/cop/rspec/be_success_matcher.rb b/rubocop/cop/rspec/be_success_matcher.rb
index a137e2dba69..4ca1a7190b0 100644
--- a/rubocop/cop/rspec/be_success_matcher.rb
+++ b/rubocop/cop/rspec/be_success_matcher.rb
@@ -44,6 +44,12 @@ module RuboCop
add_offense(node, location: :expression, message: MESSAGE)
end
+
+ def autocorrect(node)
+ lambda do |corrector|
+ corrector.insert_after(node.loc.expression, "ful")
+ end
+ end
end
end
end
diff --git a/spec/rubocop/cop/rspec/be_success_matcher_spec.rb b/spec/rubocop/cop/rspec/be_success_matcher_spec.rb
index fcb5791ef57..0d86553af36 100644
--- a/spec/rubocop/cop/rspec/be_success_matcher_spec.rb
+++ b/spec/rubocop/cop/rspec/be_success_matcher_spec.rb
@@ -27,6 +27,14 @@ describe RuboCop::Cop::RSpec::BeSuccessMatcher do
end
end
+ shared_examples 'an autocorrected be_success call' do |content, autocorrected_content|
+ it "registers an offense for `#{content}` and autocorrects it to `#{autocorrected_content}`" do
+ autocorrected = autocorrect_source(content, source_file)
+
+ expect(autocorrected).to eql(autocorrected_content)
+ end
+ end
+
context 'in a controller spec file' do
before do
allow(cop).to receive(:in_controller_spec?).and_return(true)
@@ -34,10 +42,12 @@ describe RuboCop::Cop::RSpec::BeSuccessMatcher do
context "using expect(response).to be_success call" do
it_behaves_like 'an offensive be_success call', OFFENSE_CALL_EXPECT_TO_BE_SUCCESS
+ it_behaves_like 'an autocorrected be_success call', OFFENSE_CALL_EXPECT_TO_BE_SUCCESS, CALL_EXPECT_TO_BE_SUCCESSFUL
end
context "using is_expected.to be_success call" do
it_behaves_like 'an offensive be_success call', OFFENSE_CALL_IS_EXPECTED_TO_BE_SUCCESS
+ it_behaves_like 'an autocorrected be_success call', OFFENSE_CALL_IS_EXPECTED_TO_BE_SUCCESS, CALL_IS_EXPECTED_TO_BE_SUCCESSFUL
end
context "using expect(response).to be_successful" do