From 3a71ab523ebe9e8d30aabbf12e659eb75036d0b5 Mon Sep 17 00:00:00 2001 From: Vitali Tatarintev Date: Thu, 22 Aug 2019 11:57:33 +0200 Subject: Autocorrect `be_success` to `be_successful` --- rubocop/cop/rspec/be_success_matcher.rb | 6 ++++++ spec/rubocop/cop/rspec/be_success_matcher_spec.rb | 10 ++++++++++ 2 files changed, 16 insertions(+) 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 -- cgit v1.2.1