Autocorrect `be_success` to `be_successful`

This commit is contained in:
Vitali Tatarintev 2019-08-22 11:57:33 +02:00
parent 4f2ac51644
commit 3a71ab523e
2 changed files with 16 additions and 0 deletions

View File

@ -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

View File

@ -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