diff --git a/CHANGELOG.md b/CHANGELOG.md index 895bf7ded..2a47900db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Master (Unreleased) +- Fix an error for `RSpec/SharedExamples` when using examples without argument. ([@ydah]) + ## 2.26.0 (2024-01-04) - Add new `RSpec/RedundantPredicateMatcher` cop. ([@ydah]) diff --git a/lib/rubocop/cop/rspec/shared_examples.rb b/lib/rubocop/cop/rspec/shared_examples.rb index c9cd15a6b..552243bd9 100644 --- a/lib/rubocop/cop/rspec/shared_examples.rb +++ b/lib/rubocop/cop/rspec/shared_examples.rb @@ -53,7 +53,7 @@ class SharedExamples < Base def on_send(node) shared_examples(node) do - ast_node = node.first_argument + next unless (ast_node = node.first_argument) next unless offense?(ast_node) checker = new_checker(ast_node) diff --git a/spec/rubocop/cop/rspec/shared_examples_spec.rb b/spec/rubocop/cop/rspec/shared_examples_spec.rb index 834045acc..87e44d30d 100644 --- a/spec/rubocop/cop/rspec/shared_examples_spec.rb +++ b/spec/rubocop/cop/rspec/shared_examples_spec.rb @@ -150,5 +150,18 @@ end RUBY end + + context 'when using run_test!' do + before do + other_cops.dig('RSpec', 'Language', 'Includes', 'Examples') + .push('run_test!') + end + + it 'does not occur an error' do + expect_no_offenses(<<~RUBY) + run_test! + RUBY + end + end end end