Skip to content

Commit a78f6c7

Browse files
bquorningpirj
andcommitted
Increase branch coverage of RSpec/Focus
The corrector logic for pair_type/str_type/sym_type seems like a "generic" implementation, so I move things around to let that be a "default" case in the if/else block. Also, inlining `#focus_metadata` into `#on_send` means we don't even need to check the type. Co-authored-by: Phil Pirozhkov <[email protected]>
1 parent 3d46503 commit a78f6c7

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

lib/rubocop/cop/rspec/focus.rb

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,23 +75,27 @@ class Focus < Base
7575
def on_send(node)
7676
return if node.chained? || node.each_ancestor(:def, :defs).any?
7777

78-
focus_metadata(node) do |focus|
79-
add_offense(focus) do |corrector|
80-
if focus.pair_type? || focus.str_type? || focus.sym_type?
81-
corrector.remove(with_surrounding(focus))
82-
elsif focus.send_type?
83-
correct_send(corrector, focus)
84-
end
78+
if focused_block?(node)
79+
on_focused_block(node)
80+
else
81+
metadata(node) do |focus|
82+
on_metadata(focus)
8583
end
8684
end
8785
end
8886

8987
private
9088

91-
def focus_metadata(node, &block)
92-
yield(node) if focused_block?(node)
89+
def on_focused_block(node)
90+
add_offense(node) do |corrector|
91+
correct_send(corrector, node)
92+
end
93+
end
9394

94-
metadata(node, &block)
95+
def on_metadata(node)
96+
add_offense(node) do |corrector|
97+
corrector.remove(with_surrounding(node))
98+
end
9599
end
96100

97101
def with_surrounding(focus)

0 commit comments

Comments
 (0)