Fix Capybara/CurrentPathExpectation autocorrect incompatible with Style/TrailingCommaInArguments autocorrect
[Fix #1237] Fix Capybara/CurrentPathExpectation autocorrect incompatible with Style/TrailingCommaInArguments autocorrect
https://github.com/rubocop/rubocop-rspec/pull/1253
以下の様なコードがあった場合に、Capybara/CurrentPathExpectation
と Style/TrailingCommaInArguments
が同時に動作する環境だと上手く自動修正されない問題があった。
expect(current_path).to eq(
some_path(
record_id: record.id
)
)
ここで最初のアプローチとしてはStyle/TrailingCommaInArguments
が有効か否かを判定していたが、.autocorrect_incompatible_with
を使用すれば良い事が分かった。
だが、Style/TrailingCommaInArguments
は RuboCop の本体側に定義があって、このCapybara/CurrentPathExpectation
は rubocop-rspec 側にあるので、
最終的には以下の様にオーバライドを rubocop-rspec 側でする様にした。
RuboCop::Cop::Style::TrailingCommaInArguments.singleton_class.prepend(
Module.new do
def autocorrect_incompatible_with
super.push(RuboCop::Cop::RSpec::Capybara::CurrentPathExpectation)
end
end
)