Skip to content

Commit 6a30a41

Browse files
committed
Ignore example groups defined inside methods
1 parent d1cf5eb commit 6a30a41

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

lib/rubocop/cop/rspec/empty_example_group.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ class EmptyExampleGroup < Base
160160
PATTERN
161161

162162
def on_block(node)
163+
return if node.each_ancestor(:def, :defs).any?
164+
163165
example_group_body(node) do |body|
164166
add_offense(node.send_node) unless examples?(body)
165167
end

spec/rubocop/cop/rspec/empty_example_group_spec.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,4 +258,28 @@
258258
describe Foo
259259
RUBY
260260
end
261+
262+
it 'ignores example groups defined inside methods' do
263+
expect_no_offenses(<<~RUBY)
264+
RSpec.describe Foo do
265+
def self.with_yaml_loaded(&block)
266+
context 'with YAML loaded' do
267+
module_exec(&block)
268+
end
269+
end
270+
271+
class << self
272+
def without_yaml_loaded(&block)
273+
context 'without YAML loaded' do
274+
module_exec(&block)
275+
end
276+
end
277+
end
278+
279+
with_yaml_loaded do
280+
it_behaves_like 'normal YAML serialization'
281+
end
282+
end
283+
RUBY
284+
end
261285
end

0 commit comments

Comments
 (0)