Skip to content

Commit 37ec6ee

Browse files
committed
Skip files with shared groups in RSpec/FilePath
https://relishapp.com/rspec/rspec-core/docs/example-groups/shared-examples states that shared groups don't have to have the _spec.rb suffix, and even preferably omit _spec.
1 parent b8dd1bb commit 37ec6ee

File tree

4 files changed

+11
-4
lines changed

4 files changed

+11
-4
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Master (Unreleased)
44

55
* Add `RSpec/RepeatedIncludeExample` cop. ([@biinari][])
6+
* Fix `RSpec/FilePath` when checking a file with a shared example. ([@pirj][])
67

78
## 1.43.1 (2020-08-17)
89

lib/rubocop/cop/rspec/file_path.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class FilePath < Base
6969

7070
def_node_search :routing_metadata?, '(pair (sym :type) (sym :routing))'
7171

72-
def on_top_level_group(node)
72+
def on_top_level_example_group(node)
7373
return unless top_level_groups.one?
7474

7575
const_described(node) do |send_node, described_class, arguments|

lib/rubocop/rspec/top_level_group.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def on_new_investigation
1616
return unless root_node
1717

1818
top_level_groups.each do |node|
19-
example_group?(node, &method(:on_top_level_example_group))
19+
on_top_level_example_group(node) if example_group?(node)
2020
on_top_level_group(node)
2121
end
2222
end
@@ -29,9 +29,9 @@ def top_level_groups
2929
private
3030

3131
# Dummy methods to be overridden in the consumer
32-
def on_top_level_example_group; end
32+
def on_top_level_example_group(_node); end
3333

34-
def on_top_level_group; end
34+
def on_top_level_group(_node); end
3535

3636
def top_level_group?(node)
3737
top_level_groups.include?(node)

spec/rubocop/cop/rspec/file_path_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@
6464
RUBY
6565
end
6666

67+
it 'ignores shared examples' do
68+
expect_no_offenses(<<-RUBY, 'user.rb')
69+
shared_examples_for 'foo' do; end
70+
RUBY
71+
end
72+
6773
it 'skips specs that do not describe a class / method' do
6874
expect_no_offenses(<<-RUBY, 'some/class/spec.rb')
6975
describe 'Test something' do; end

0 commit comments

Comments
 (0)