diff options
Diffstat (limited to 'rubocop/cop/rspec/top_level_describe_path.rb')
-rw-r--r-- | rubocop/cop/rspec/top_level_describe_path.rb | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/rubocop/cop/rspec/top_level_describe_path.rb b/rubocop/cop/rspec/top_level_describe_path.rb index 3cc1ee8df90..ee1a0bcc4b6 100644 --- a/rubocop/cop/rspec/top_level_describe_path.rb +++ b/rubocop/cop/rspec/top_level_describe_path.rb @@ -1,21 +1,20 @@ # frozen_string_literal: true -require 'rubocop/rspec/top_level_describe' +require 'rubocop/cop/rspec/base' +require 'rubocop/cop/rspec/mixin/top_level_group' module RuboCop module Cop module RSpec - class TopLevelDescribePath < RuboCop::Cop::Cop - include RuboCop::RSpec::TopLevelDescribe + class TopLevelDescribePath < RuboCop::Cop::RSpec::Base + include RuboCop::Cop::RSpec::TopLevelGroup MESSAGE = 'A file with a top-level `describe` must end in _spec.rb.' - SHARED_EXAMPLES = %i[shared_examples shared_examples_for].freeze - def on_top_level_describe(node, args) + def on_top_level_example_group(node) return if acceptable_file_path?(processed_source.buffer.name) - return if shared_example?(node) - add_offense(node, message: MESSAGE) + add_offense(node.send_node, message: MESSAGE) end private @@ -23,12 +22,6 @@ module RuboCop def acceptable_file_path?(path) File.fnmatch?('*_spec.rb', path) || File.fnmatch?('*/frontend/fixtures/*', path) || File.fnmatch?('*/docs_screenshots/*_docs.rb', path) end - - def shared_example?(node) - node.ancestors.any? do |node| - node.respond_to?(:method_name) && SHARED_EXAMPLES.include?(node.method_name) - end - end end end end |