From 50a0a11098fb32cb85c17d56ed8194466362fd8e Mon Sep 17 00:00:00 2001 From: Benjamin Quorning Date: Wed, 8 Jul 2020 20:02:34 +0200 Subject: [PATCH] PR feedback --- lib/rubocop/cop/rspec/align_left_let_brace.rb | 12 ++++-------- lib/rubocop/cop/rspec/align_right_let_brace.rb | 12 ++++-------- .../cop/rspec/capybara/current_path_expectation.rb | 4 ++-- lib/rubocop/cop/rspec/capybara/feature_methods.rb | 10 ++++++---- lib/rubocop/cop/rspec/context_method.rb | 2 +- lib/rubocop/cop/rspec/empty_hook.rb | 3 +-- lib/rubocop/cop/rspec/example_wording.rb | 5 +++-- lib/rubocop/cop/rspec/factory_bot/create_list.rb | 6 ++---- 8 files changed, 23 insertions(+), 31 deletions(-) diff --git a/lib/rubocop/cop/rspec/align_left_let_brace.rb b/lib/rubocop/cop/rspec/align_left_let_brace.rb index 205e2e341..b2f307642 100644 --- a/lib/rubocop/cop/rspec/align_left_let_brace.rb +++ b/lib/rubocop/cop/rspec/align_left_let_brace.rb @@ -29,21 +29,17 @@ def self.autocorrect_incompatible_with def on_new_investigation return if processed_source.blank? + token_aligner = + RuboCop::RSpec::AlignLetBrace.new(processed_source.ast, :begin) + token_aligner.offending_tokens.each do |let| add_offense(let.loc.begin) do |corrector| corrector.insert_before( - let.loc.begin, - token_aligner.indent_for(let) + let.loc.begin, token_aligner.indent_for(let) ) end end end - - private - - def token_aligner - RuboCop::RSpec::AlignLetBrace.new(processed_source.ast, :begin) - end end end end diff --git a/lib/rubocop/cop/rspec/align_right_let_brace.rb b/lib/rubocop/cop/rspec/align_right_let_brace.rb index d37dec910..387d9507b 100644 --- a/lib/rubocop/cop/rspec/align_right_let_brace.rb +++ b/lib/rubocop/cop/rspec/align_right_let_brace.rb @@ -29,21 +29,17 @@ def self.autocorrect_incompatible_with def on_new_investigation return if processed_source.blank? + token_aligner = + RuboCop::RSpec::AlignLetBrace.new(processed_source.ast, :end) + token_aligner.offending_tokens.each do |let| add_offense(let.loc.end) do |corrector| corrector.insert_before( - let.loc.end, - token_aligner.indent_for(let) + let.loc.end, token_aligner.indent_for(let) ) end end end - - private - - def token_aligner - RuboCop::RSpec::AlignLetBrace.new(processed_source.ast, :end) - end end end end diff --git a/lib/rubocop/cop/rspec/capybara/current_path_expectation.rb b/lib/rubocop/cop/rspec/capybara/current_path_expectation.rb index 2a7b1323b..ec51d2c85 100644 --- a/lib/rubocop/cop/rspec/capybara/current_path_expectation.rb +++ b/lib/rubocop/cop/rspec/capybara/current_path_expectation.rb @@ -50,6 +50,8 @@ class CurrentPathExpectation < Cop def on_send(node) expectation_set_on_current_path(node) do add_offense(node.loc.selector) do |corrector| + next unless node.chained? + autocorrect(corrector, node) end end @@ -58,8 +60,6 @@ def on_send(node) private def autocorrect(corrector, node) - return unless node.chained? - as_is_matcher(node.parent) do |to_sym, matcher_node| rewrite_expectation(corrector, node, to_sym, matcher_node) end diff --git a/lib/rubocop/cop/rspec/capybara/feature_methods.rb b/lib/rubocop/cop/rspec/capybara/feature_methods.rb index ff13fef2b..c8e837420 100644 --- a/lib/rubocop/cop/rspec/capybara/feature_methods.rb +++ b/lib/rubocop/cop/rspec/capybara/feature_methods.rb @@ -73,15 +73,17 @@ def on_block(node) feature_method(node) do |send_node, match| next if enabled?(match) - add_offense( - send_node.loc.selector, - message: format(MSG, method: match, replacement: MAP[match]) - ) do |corrector| + add_offense(send_node.loc.selector) do |corrector| corrector.replace(send_node.loc.selector, MAP[match].to_s) end end end + def message(range) + name = range.source.to_sym + format(MSG, method: name, replacement: MAP[name]) + end + private def inside_spec?(node) diff --git a/lib/rubocop/cop/rspec/context_method.rb b/lib/rubocop/cop/rspec/context_method.rb index e3dfb79f7..823947236 100644 --- a/lib/rubocop/cop/rspec/context_method.rb +++ b/lib/rubocop/cop/rspec/context_method.rb @@ -35,7 +35,7 @@ class ContextMethod < Cop def on_block(node) context_method(node) do |context| add_offense(context) do |corrector| - corrector.replace(context.parent.loc.selector, 'describe') + corrector.replace(node.send_node.loc.selector, 'describe') end end end diff --git a/lib/rubocop/cop/rspec/empty_hook.rb b/lib/rubocop/cop/rspec/empty_hook.rb index b7827f972..4e62cd95f 100644 --- a/lib/rubocop/cop/rspec/empty_hook.rb +++ b/lib/rubocop/cop/rspec/empty_hook.rb @@ -35,8 +35,7 @@ class EmptyHook < Cop def on_block(node) empty_hook?(node) do |hook| add_offense(hook) do |corrector| - block = hook.parent - range = range_with_surrounding_space(range: block.loc.expression) + range = range_with_surrounding_space(range: node.loc.expression) corrector.remove(range) end end diff --git a/lib/rubocop/cop/rspec/example_wording.rb b/lib/rubocop/cop/rspec/example_wording.rb index 9ab0a7c79..bef638e1d 100644 --- a/lib/rubocop/cop/rspec/example_wording.rb +++ b/lib/rubocop/cop/rspec/example_wording.rb @@ -58,8 +58,9 @@ def on_block(node) private def add_wording_offense(node, message) - add_offense(docstring(node), message: message) do |corrector| - corrector.replace(docstring(node), replacement_text(node)) + docstring = docstring(node) + add_offense(docstring, message: message) do |corrector| + corrector.replace(docstring, replacement_text(node)) end end diff --git a/lib/rubocop/cop/rspec/factory_bot/create_list.rb b/lib/rubocop/cop/rspec/factory_bot/create_list.rb index 4600b4549..1c84d4312 100644 --- a/lib/rubocop/cop/rspec/factory_bot/create_list.rb +++ b/lib/rubocop/cop/rspec/factory_bot/create_list.rb @@ -61,10 +61,8 @@ def on_send(node) return unless style == :n_times factory_list_call(node) do |_receiver, _factory, count, _| - add_offense( - node.loc.selector, - message: format(MSG_N_TIMES, number: count) - ) do |corrector| + message = format(MSG_N_TIMES, number: count) + add_offense(node.loc.selector, message: message) do |corrector| TimesCorrector.new(node).call(corrector) end end