diff --git a/config/default.yml b/config/default.yml index bd689553f..84ad0b811 100644 --- a/config/default.yml +++ b/config/default.yml @@ -4,6 +4,15 @@ AllCops: Patterns: - _spec.rb - "(?:^|/)spec/" + Language: + Hooks: + - prepend_before + - before + - append_before + - around + - prepend_after + - after + - append_after RSpec/FactoryBot: Patterns: - spec/factories.rb diff --git a/lib/rubocop/rspec/language.rb b/lib/rubocop/rspec/language.rb index f0e02c294..aed657169 100644 --- a/lib/rubocop/rspec/language.rb +++ b/lib/rubocop/rspec/language.rb @@ -67,25 +67,6 @@ def node_pattern attr_reader :selectors end - # Built in RSpec selectors - module BuiltIn - LANGUAGE = { - 'Hooks' => %i[ - prepend_before - before - append_before - around - prepend_after - after - append_after - ] - }.freeze - - def self.language_elements_for(*keys) - LANGUAGE.dig(*keys) || [] - end - end - module ExampleGroups GROUPS = SelectorSet.new(%i[describe context feature example_group]) SKIPPED = SelectorSet.new(%i[xdescribe xcontext xfeature]) diff --git a/lib/rubocop/rspec/language/node_pattern.rb b/lib/rubocop/rspec/language/node_pattern.rb index 808a5ba2e..a7c18174e 100644 --- a/lib/rubocop/rspec/language/node_pattern.rb +++ b/lib/rubocop/rspec/language/node_pattern.rb @@ -43,32 +43,26 @@ def rspec_all(keyword) # TODO: Fully replace selectors with sets def hooks_set - @hooks_set ||= Set.new(hook_selectors.send(:selectors)) + @hooks_set ||= Set.new(rspec_language_config('Hooks')) end def all_set @all_set ||= Set.new(all_selectors.send(:selectors)) end - def hook_selectors - selectors('Hooks') - end - def all_selectors - ExampleGroups::ALL + - SharedGroups::ALL + - Examples::ALL + - hook_selectors + - Helpers::ALL + - Subject::ALL + - Expectations::ALL + + ExampleGroups::ALL + + SharedGroups::ALL + + Examples::ALL + + selectors('Hooks') + + Helpers::ALL + + Subject::ALL + + Expectations::ALL + Runners::ALL end def selectors(*keys) - SelectorSet.new( - BuiltIn.language_elements_for(*keys) + rspec_language_config(*keys) - ) + SelectorSet.new(rspec_language_config(*keys)) end end end diff --git a/spec/rubocop/cop/rspec/align_left_let_brace_spec.rb b/spec/rubocop/cop/rspec/align_left_let_brace_spec.rb index 67106a4d2..fea688d9f 100644 --- a/spec/rubocop/cop/rspec/align_left_let_brace_spec.rb +++ b/spec/rubocop/cop/rspec/align_left_let_brace_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::AlignLeftLetBrace do - subject(:cop) { described_class.new } - # rubocop:disable RSpec/ExampleLength it 'registers offense for unaligned braces' do expect_offense(<<-RUBY) diff --git a/spec/rubocop/cop/rspec/align_right_let_brace_spec.rb b/spec/rubocop/cop/rspec/align_right_let_brace_spec.rb index 1fa350c6b..6538b4a50 100644 --- a/spec/rubocop/cop/rspec/align_right_let_brace_spec.rb +++ b/spec/rubocop/cop/rspec/align_right_let_brace_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::AlignRightLetBrace do - subject(:cop) { described_class.new } - # rubocop:disable RSpec/ExampleLength it 'registers offense for unaligned braces' do expect_offense(<<-RUBY) diff --git a/spec/rubocop/cop/rspec/any_instance_spec.rb b/spec/rubocop/cop/rspec/any_instance_spec.rb index 22f3c860d..40ca2e3ff 100644 --- a/spec/rubocop/cop/rspec/any_instance_spec.rb +++ b/spec/rubocop/cop/rspec/any_instance_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::AnyInstance do - subject(:cop) { described_class.new } - it 'finds `allow_any_instance_of` instead of an instance double' do expect_offense(<<-RUBY) before do diff --git a/spec/rubocop/cop/rspec/around_block_spec.rb b/spec/rubocop/cop/rspec/around_block_spec.rb index c5c9ce781..363e06816 100644 --- a/spec/rubocop/cop/rspec/around_block_spec.rb +++ b/spec/rubocop/cop/rspec/around_block_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::AroundBlock do - subject(:cop) { described_class.new } - context 'when no value is yielded' do it 'registers an offense' do expect_offense(<<-RUBY) diff --git a/spec/rubocop/cop/rspec/be_eql_spec.rb b/spec/rubocop/cop/rspec/be_eql_spec.rb index c03480421..558ec8243 100644 --- a/spec/rubocop/cop/rspec/be_eql_spec.rb +++ b/spec/rubocop/cop/rspec/be_eql_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::BeEql do - subject(:cop) { described_class.new } - it 'registers an offense for `eql` when argument is a boolean' do expect_offense(<<-RUBY) it { expect(foo).to eql(true) } diff --git a/spec/rubocop/cop/rspec/be_spec.rb b/spec/rubocop/cop/rspec/be_spec.rb index c8c02ddaa..f29a18409 100644 --- a/spec/rubocop/cop/rspec/be_spec.rb +++ b/spec/rubocop/cop/rspec/be_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::Be do - subject(:cop) { described_class.new } - it 'registers an offense for `be` without an argument' do expect_offense(<<-RUBY) it { expect(foo).to be } diff --git a/spec/rubocop/cop/rspec/before_after_all_spec.rb b/spec/rubocop/cop/rspec/before_after_all_spec.rb index 2e67c2250..41618109b 100644 --- a/spec/rubocop/cop/rspec/before_after_all_spec.rb +++ b/spec/rubocop/cop/rspec/before_after_all_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::BeforeAfterAll do - subject(:cop) { described_class.new } - def message(hook) "Beware of using `#{hook}` as it may cause state to leak between tests. "\ 'If you are using `rspec-rails`, and `use_transactional_fixtures` is '\ diff --git a/spec/rubocop/cop/rspec/capybara/current_path_expectation_spec.rb b/spec/rubocop/cop/rspec/capybara/current_path_expectation_spec.rb index 78616663d..619cf2e9a 100644 --- a/spec/rubocop/cop/rspec/capybara/current_path_expectation_spec.rb +++ b/spec/rubocop/cop/rspec/capybara/current_path_expectation_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::Capybara::CurrentPathExpectation do - subject(:cop) { described_class.new } - it 'flags violations for `expect(current_path)`' do expect_offense(<<-RUBY) expect(current_path).to eq("/callback") diff --git a/spec/rubocop/cop/rspec/capybara/feature_methods_spec.rb b/spec/rubocop/cop/rspec/capybara/feature_methods_spec.rb index e7dfc0dff..983ff4496 100644 --- a/spec/rubocop/cop/rspec/capybara/feature_methods_spec.rb +++ b/spec/rubocop/cop/rspec/capybara/feature_methods_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::Capybara::FeatureMethods, :config do +RSpec.describe RuboCop::Cop::RSpec::Capybara::FeatureMethods do it 'flags violations for `background`' do expect_offense(<<-RUBY) describe 'some feature' do diff --git a/spec/rubocop/cop/rspec/capybara/visibility_matcher_spec.rb b/spec/rubocop/cop/rspec/capybara/visibility_matcher_spec.rb index e108da5be..7fd4548fb 100644 --- a/spec/rubocop/cop/rspec/capybara/visibility_matcher_spec.rb +++ b/spec/rubocop/cop/rspec/capybara/visibility_matcher_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::Capybara::VisibilityMatcher do - subject(:cop) { described_class.new } - it 'registers an offense when using `visible: true`' do expect_offense(<<-RUBY) expect(page).to have_selector('.my_element', visible: true) diff --git a/spec/rubocop/cop/rspec/context_method_spec.rb b/spec/rubocop/cop/rspec/context_method_spec.rb index efc8bf33f..fae76377f 100644 --- a/spec/rubocop/cop/rspec/context_method_spec.rb +++ b/spec/rubocop/cop/rspec/context_method_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::ContextMethod do - subject(:cop) { described_class.new } - it 'ignores describe blocks' do expect_no_offenses(<<-RUBY) describe '.foo_bar' do diff --git a/spec/rubocop/cop/rspec/context_wording_spec.rb b/spec/rubocop/cop/rspec/context_wording_spec.rb index 05eea35cc..efc71913e 100644 --- a/spec/rubocop/cop/rspec/context_wording_spec.rb +++ b/spec/rubocop/cop/rspec/context_wording_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::ContextWording, :config do +RSpec.describe RuboCop::Cop::RSpec::ContextWording do let(:cop_config) { { 'Prefixes' => %w[when with] } } it 'skips describe blocks' do diff --git a/spec/rubocop/cop/rspec/describe_class_spec.rb b/spec/rubocop/cop/rspec/describe_class_spec.rb index 04d17bb80..909e3f516 100644 --- a/spec/rubocop/cop/rspec/describe_class_spec.rb +++ b/spec/rubocop/cop/rspec/describe_class_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::DescribeClass do - subject(:cop) { described_class.new } - it 'checks first-line describe statements' do expect_offense(<<-RUBY) describe "bad describe" do diff --git a/spec/rubocop/cop/rspec/describe_method_spec.rb b/spec/rubocop/cop/rspec/describe_method_spec.rb index bf03acbc3..b3d32e475 100644 --- a/spec/rubocop/cop/rspec/describe_method_spec.rb +++ b/spec/rubocop/cop/rspec/describe_method_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::DescribeMethod do - subject(:cop) { described_class.new } - it 'ignores describes with only a class' do expect_no_offenses('describe Some::Class do; end') end @@ -27,7 +25,7 @@ it 'skips specs not having a string second argument' do expect_no_offenses(<<-RUBY) - describe Some::Class, :config do + describe Some::Class do end RUBY end diff --git a/spec/rubocop/cop/rspec/describe_symbol_spec.rb b/spec/rubocop/cop/rspec/describe_symbol_spec.rb index ced37c112..a5c58278f 100644 --- a/spec/rubocop/cop/rspec/describe_symbol_spec.rb +++ b/spec/rubocop/cop/rspec/describe_symbol_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::DescribeSymbol do - subject(:cop) { described_class.new } - it 'flags violations for `describe :symbol`' do expect_offense(<<-RUBY) describe(:some_method) { } diff --git a/spec/rubocop/cop/rspec/described_class_module_wrapping_spec.rb b/spec/rubocop/cop/rspec/described_class_module_wrapping_spec.rb index fd2cad7d0..dc1e33535 100644 --- a/spec/rubocop/cop/rspec/described_class_module_wrapping_spec.rb +++ b/spec/rubocop/cop/rspec/described_class_module_wrapping_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::DescribedClassModuleWrapping do - subject(:cop) { described_class.new } - it 'allows a describe block in the outermost scope' do expect_no_offenses(<<-RUBY) RSpec.describe MyClass do diff --git a/spec/rubocop/cop/rspec/described_class_spec.rb b/spec/rubocop/cop/rspec/described_class_spec.rb index ef928b48f..17c949936 100644 --- a/spec/rubocop/cop/rspec/described_class_spec.rb +++ b/spec/rubocop/cop/rspec/described_class_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::DescribedClass, :config do +RSpec.describe RuboCop::Cop::RSpec::DescribedClass do let(:cop_config) { {} } context 'when SkipBlocks is `true`' do diff --git a/spec/rubocop/cop/rspec/dialect_spec.rb b/spec/rubocop/cop/rspec/dialect_spec.rb index 7ddb32525..3136731b4 100644 --- a/spec/rubocop/cop/rspec/dialect_spec.rb +++ b/spec/rubocop/cop/rspec/dialect_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::Dialect, :config do +RSpec.describe RuboCop::Cop::RSpec::Dialect do let(:cop_config) do { 'PreferredMethods' => { @@ -9,7 +9,7 @@ } end - it 'allows describe blocks' do + it 'allows describe blocks', x: true do expect_no_offenses(<<-RUBY) describe 'display name presence' do end diff --git a/spec/rubocop/cop/rspec/empty_example_group_spec.rb b/spec/rubocop/cop/rspec/empty_example_group_spec.rb index 42e7cb239..a64f02a06 100644 --- a/spec/rubocop/cop/rspec/empty_example_group_spec.rb +++ b/spec/rubocop/cop/rspec/empty_example_group_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::EmptyExampleGroup, :config do +RSpec.describe RuboCop::Cop::RSpec::EmptyExampleGroup do it 'flags an empty example group' do expect_offense(<<~RUBY) describe Foo do diff --git a/spec/rubocop/cop/rspec/empty_hook_spec.rb b/spec/rubocop/cop/rspec/empty_hook_spec.rb index 0c01480cf..53a1d2f5b 100644 --- a/spec/rubocop/cop/rspec/empty_hook_spec.rb +++ b/spec/rubocop/cop/rspec/empty_hook_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::EmptyHook do - subject(:cop) { described_class.new } - context 'with `before` hook' do it 'detects offense for empty `before`' do expect_offense(<<~RUBY) diff --git a/spec/rubocop/cop/rspec/empty_line_after_example_group_spec.rb b/spec/rubocop/cop/rspec/empty_line_after_example_group_spec.rb index 486c6501f..b2e461cd8 100644 --- a/spec/rubocop/cop/rspec/empty_line_after_example_group_spec.rb +++ b/spec/rubocop/cop/rspec/empty_line_after_example_group_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::EmptyLineAfterExampleGroup do - subject(:cop) { described_class.new } - it 'checks for empty line after describe' do expect_offense(<<-RUBY) RSpec.describe Foo do diff --git a/spec/rubocop/cop/rspec/empty_line_after_example_spec.rb b/spec/rubocop/cop/rspec/empty_line_after_example_spec.rb index 4ed8c1534..4c33d71db 100644 --- a/spec/rubocop/cop/rspec/empty_line_after_example_spec.rb +++ b/spec/rubocop/cop/rspec/empty_line_after_example_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::EmptyLineAfterExample, :config do +RSpec.describe RuboCop::Cop::RSpec::EmptyLineAfterExample do it 'flags a missing empty line after `it`' do expect_offense(<<-RUBY) RSpec.describe Foo do diff --git a/spec/rubocop/cop/rspec/empty_line_after_final_let_spec.rb b/spec/rubocop/cop/rspec/empty_line_after_final_let_spec.rb index 9d1359892..2e7d3231d 100644 --- a/spec/rubocop/cop/rspec/empty_line_after_final_let_spec.rb +++ b/spec/rubocop/cop/rspec/empty_line_after_final_let_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::EmptyLineAfterFinalLet do - subject(:cop) { described_class.new } - it 'checks for empty line after last let' do expect_offense(<<-RUBY) RSpec.describe User do diff --git a/spec/rubocop/cop/rspec/empty_line_after_hook_spec.rb b/spec/rubocop/cop/rspec/empty_line_after_hook_spec.rb index fb4d382ce..3e98ec5c7 100644 --- a/spec/rubocop/cop/rspec/empty_line_after_hook_spec.rb +++ b/spec/rubocop/cop/rspec/empty_line_after_hook_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::EmptyLineAfterHook do - subject(:cop) { described_class.new } - it 'checks for empty line after `before` hook' do expect_offense(<<-RUBY) RSpec.describe User do diff --git a/spec/rubocop/cop/rspec/empty_line_after_subject_spec.rb b/spec/rubocop/cop/rspec/empty_line_after_subject_spec.rb index 06e7d0cca..c4cdc0507 100644 --- a/spec/rubocop/cop/rspec/empty_line_after_subject_spec.rb +++ b/spec/rubocop/cop/rspec/empty_line_after_subject_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::EmptyLineAfterSubject do - subject(:cop) { described_class.new } - it 'checks for empty line after subject' do expect_offense(<<-RUBY) RSpec.describe User do diff --git a/spec/rubocop/cop/rspec/example_length_spec.rb b/spec/rubocop/cop/rspec/example_length_spec.rb index 99395f51a..eeb4d9418 100644 --- a/spec/rubocop/cop/rspec/example_length_spec.rb +++ b/spec/rubocop/cop/rspec/example_length_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::ExampleLength, :config do +RSpec.describe RuboCop::Cop::RSpec::ExampleLength do let(:cop_config) { { 'Max' => 3 } } it 'ignores non-spec blocks' do diff --git a/spec/rubocop/cop/rspec/example_without_description_spec.rb b/spec/rubocop/cop/rspec/example_without_description_spec.rb index 30f9a6822..e2156925d 100644 --- a/spec/rubocop/cop/rspec/example_without_description_spec.rb +++ b/spec/rubocop/cop/rspec/example_without_description_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::ExampleWithoutDescription, :config do +RSpec.describe RuboCop::Cop::RSpec::ExampleWithoutDescription do let(:cop_config) do { 'EnforcedStyle' => enforced_style } end diff --git a/spec/rubocop/cop/rspec/example_wording_spec.rb b/spec/rubocop/cop/rspec/example_wording_spec.rb index cb1600dc9..c94f2cb64 100644 --- a/spec/rubocop/cop/rspec/example_wording_spec.rb +++ b/spec/rubocop/cop/rspec/example_wording_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::ExampleWording, :config do +RSpec.describe RuboCop::Cop::RSpec::ExampleWording do it 'ignores non-example blocks' do expect_no_offenses('foo "should do something" do; end') end diff --git a/spec/rubocop/cop/rspec/expect_actual_spec.rb b/spec/rubocop/cop/rspec/expect_actual_spec.rb index a2062f066..fc0db0d20 100644 --- a/spec/rubocop/cop/rspec/expect_actual_spec.rb +++ b/spec/rubocop/cop/rspec/expect_actual_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::ExpectActual, :config do +RSpec.describe RuboCop::Cop::RSpec::ExpectActual do it 'flags numeric literal values within expect(...)' do expect_offense(<<-RUBY) describe Foo do diff --git a/spec/rubocop/cop/rspec/expect_change_spec.rb b/spec/rubocop/cop/rspec/expect_change_spec.rb index 9985e89a1..82476b151 100644 --- a/spec/rubocop/cop/rspec/expect_change_spec.rb +++ b/spec/rubocop/cop/rspec/expect_change_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::ExpectChange, :config do +RSpec.describe RuboCop::Cop::RSpec::ExpectChange do let(:cop_config) do { 'EnforcedStyle' => enforced_style } end diff --git a/spec/rubocop/cop/rspec/expect_in_hook_spec.rb b/spec/rubocop/cop/rspec/expect_in_hook_spec.rb index 47593c54a..533bb020e 100644 --- a/spec/rubocop/cop/rspec/expect_in_hook_spec.rb +++ b/spec/rubocop/cop/rspec/expect_in_hook_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::ExpectInHook do - subject(:cop) { described_class.new } - it 'adds an offense for `expect` in `before` hook' do expect_offense(<<-RUBY) before do diff --git a/spec/rubocop/cop/rspec/expect_output_spec.rb b/spec/rubocop/cop/rspec/expect_output_spec.rb index 20308e028..ac38a9b3b 100644 --- a/spec/rubocop/cop/rspec/expect_output_spec.rb +++ b/spec/rubocop/cop/rspec/expect_output_spec.rb @@ -3,8 +3,6 @@ require 'spec_helper' RSpec.describe RuboCop::Cop::RSpec::ExpectOutput do - subject(:cop) { described_class.new } - it 'registers an offense for overwriting $stdout within an example' do expect_offense(<<-RUBY) specify do diff --git a/spec/rubocop/cop/rspec/factory_bot/attribute_defined_statically_spec.rb b/spec/rubocop/cop/rspec/factory_bot/attribute_defined_statically_spec.rb index 4caba3915..f7c4217b5 100644 --- a/spec/rubocop/cop/rspec/factory_bot/attribute_defined_statically_spec.rb +++ b/spec/rubocop/cop/rspec/factory_bot/attribute_defined_statically_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::FactoryBot::AttributeDefinedStatically do - subject(:cop) { described_class.new } - it 'registers an offense for offending code' do expect_offense(<<-RUBY) FactoryBot.define do diff --git a/spec/rubocop/cop/rspec/factory_bot/create_list_spec.rb b/spec/rubocop/cop/rspec/factory_bot/create_list_spec.rb index 10af6187a..33e3e1b2f 100644 --- a/spec/rubocop/cop/rspec/factory_bot/create_list_spec.rb +++ b/spec/rubocop/cop/rspec/factory_bot/create_list_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::FactoryBot::CreateList, :config do +RSpec.describe RuboCop::Cop::RSpec::FactoryBot::CreateList do let(:cop_config) do { 'EnforcedStyle' => enforced_style } end diff --git a/spec/rubocop/cop/rspec/factory_bot/factory_class_name_spec.rb b/spec/rubocop/cop/rspec/factory_bot/factory_class_name_spec.rb index f7a932d45..31fb5d217 100644 --- a/spec/rubocop/cop/rspec/factory_bot/factory_class_name_spec.rb +++ b/spec/rubocop/cop/rspec/factory_bot/factory_class_name_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::FactoryBot::FactoryClassName do - subject(:cop) { described_class.new } - context 'when passing block' do it 'flags passing a class' do expect_offense(<<~RUBY) diff --git a/spec/rubocop/cop/rspec/file_path_spec.rb b/spec/rubocop/cop/rspec/file_path_spec.rb index 833075f52..044189f94 100644 --- a/spec/rubocop/cop/rspec/file_path_spec.rb +++ b/spec/rubocop/cop/rspec/file_path_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::FilePath, :config do +RSpec.describe RuboCop::Cop::RSpec::FilePath do it 'registers an offense for a bad path' do expect_offense(<<-RUBY, 'wrong_path_foo_spec.rb') describe MyClass, 'foo' do; end diff --git a/spec/rubocop/cop/rspec/focus_spec.rb b/spec/rubocop/cop/rspec/focus_spec.rb index 250912860..bf4fd1614 100644 --- a/spec/rubocop/cop/rspec/focus_spec.rb +++ b/spec/rubocop/cop/rspec/focus_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::Focus do - subject(:cop) { described_class.new } - # rubocop:disable RSpec/ExampleLength it 'flags all rspec example blocks with that include `focus: true`' do expect_offense(<<-RUBY) diff --git a/spec/rubocop/cop/rspec/hook_argument_spec.rb b/spec/rubocop/cop/rspec/hook_argument_spec.rb index 187df850a..edbb138bf 100644 --- a/spec/rubocop/cop/rspec/hook_argument_spec.rb +++ b/spec/rubocop/cop/rspec/hook_argument_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::HookArgument, :config do +RSpec.describe RuboCop::Cop::RSpec::HookArgument do let(:cop_config) do { 'EnforcedStyle' => enforced_style } end diff --git a/spec/rubocop/cop/rspec/hooks_before_examples_spec.rb b/spec/rubocop/cop/rspec/hooks_before_examples_spec.rb index c105485ff..0f5cff81f 100644 --- a/spec/rubocop/cop/rspec/hooks_before_examples_spec.rb +++ b/spec/rubocop/cop/rspec/hooks_before_examples_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::HooksBeforeExamples do - subject(:cop) { described_class.new } - it 'flags `before` after `it`' do expect_offense(<<-RUBY) RSpec.describe User do diff --git a/spec/rubocop/cop/rspec/implicit_block_expectation_spec.rb b/spec/rubocop/cop/rspec/implicit_block_expectation_spec.rb index 10a1262ad..7c93f41e6 100644 --- a/spec/rubocop/cop/rspec/implicit_block_expectation_spec.rb +++ b/spec/rubocop/cop/rspec/implicit_block_expectation_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::ImplicitBlockExpectation do - subject(:cop) { described_class.new } - it 'flags lambda in subject' do expect_offense(<<-RUBY) describe do diff --git a/spec/rubocop/cop/rspec/implicit_expect_spec.rb b/spec/rubocop/cop/rspec/implicit_expect_spec.rb index 1c2df2fda..c05bb2653 100644 --- a/spec/rubocop/cop/rspec/implicit_expect_spec.rb +++ b/spec/rubocop/cop/rspec/implicit_expect_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::ImplicitExpect, :config do +RSpec.describe RuboCop::Cop::RSpec::ImplicitExpect do context 'when EnforcedStyle is is_expected' do let(:cop_config) do { 'EnforcedStyle' => 'is_expected' } diff --git a/spec/rubocop/cop/rspec/implicit_subject_spec.rb b/spec/rubocop/cop/rspec/implicit_subject_spec.rb index a9fc73874..ceb663f49 100644 --- a/spec/rubocop/cop/rspec/implicit_subject_spec.rb +++ b/spec/rubocop/cop/rspec/implicit_subject_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::ImplicitSubject, :config do +RSpec.describe RuboCop::Cop::RSpec::ImplicitSubject do let(:cop_config) do { 'EnforcedStyle' => enforced_style } end diff --git a/spec/rubocop/cop/rspec/instance_spy_spec.rb b/spec/rubocop/cop/rspec/instance_spy_spec.rb index 7b240a09a..90031a9aa 100644 --- a/spec/rubocop/cop/rspec/instance_spy_spec.rb +++ b/spec/rubocop/cop/rspec/instance_spy_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::InstanceSpy do - subject(:cop) { described_class.new } - context 'when used with `have_received`' do it 'adds an offense for an instance_double with single argument' do expect_offense(<<-RUBY) diff --git a/spec/rubocop/cop/rspec/instance_variable_spec.rb b/spec/rubocop/cop/rspec/instance_variable_spec.rb index c33803979..0aaf536e9 100644 --- a/spec/rubocop/cop/rspec/instance_variable_spec.rb +++ b/spec/rubocop/cop/rspec/instance_variable_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::InstanceVariable do - subject(:cop) { described_class.new } - it 'flags an instance variable inside a describe' do expect_offense(<<-RUBY) describe MyClass do @@ -130,7 +128,7 @@ def serialize end end - context 'when configured with AssignmentOnly', :config do + context 'when configured with AssignmentOnly' do let(:cop_config) do { 'AssignmentOnly' => true } end diff --git a/spec/rubocop/cop/rspec/invalid_predicate_matcher_spec.rb b/spec/rubocop/cop/rspec/invalid_predicate_matcher_spec.rb index 19715e16a..59b6359d7 100644 --- a/spec/rubocop/cop/rspec/invalid_predicate_matcher_spec.rb +++ b/spec/rubocop/cop/rspec/invalid_predicate_matcher_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::InvalidPredicateMatcher do - subject(:cop) { described_class.new } - it 'registers an offense for double question' do expect_offense(<<-RUBY) expect(foo).to be_something? diff --git a/spec/rubocop/cop/rspec/it_behaves_like_spec.rb b/spec/rubocop/cop/rspec/it_behaves_like_spec.rb index d49120c43..5cf52274c 100644 --- a/spec/rubocop/cop/rspec/it_behaves_like_spec.rb +++ b/spec/rubocop/cop/rspec/it_behaves_like_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::ItBehavesLike, :config do +RSpec.describe RuboCop::Cop::RSpec::ItBehavesLike do let(:cop_config) do { 'EnforcedStyle' => enforced_style } end diff --git a/spec/rubocop/cop/rspec/iterated_expectation_spec.rb b/spec/rubocop/cop/rspec/iterated_expectation_spec.rb index b894c5235..5a5d3846c 100644 --- a/spec/rubocop/cop/rspec/iterated_expectation_spec.rb +++ b/spec/rubocop/cop/rspec/iterated_expectation_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::IteratedExpectation do - subject(:cop) { described_class.new } - it 'flags `each` with an expectation' do expect_offense(<<-RUBY) it 'validates users' do diff --git a/spec/rubocop/cop/rspec/leading_subject_spec.rb b/spec/rubocop/cop/rspec/leading_subject_spec.rb index 9bc7d6982..0e9ff0324 100644 --- a/spec/rubocop/cop/rspec/leading_subject_spec.rb +++ b/spec/rubocop/cop/rspec/leading_subject_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::LeadingSubject do - subject(:cop) { described_class.new } - it 'checks subject below let' do expect_offense(<<-RUBY) RSpec.describe User do diff --git a/spec/rubocop/cop/rspec/leaky_constant_declaration_spec.rb b/spec/rubocop/cop/rspec/leaky_constant_declaration_spec.rb index bec0dedc3..2b47022b9 100644 --- a/spec/rubocop/cop/rspec/leaky_constant_declaration_spec.rb +++ b/spec/rubocop/cop/rspec/leaky_constant_declaration_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::LeakyConstantDeclaration do - subject(:cop) { described_class.new } - describe 'constant assignment' do it 'flags inside an example group' do expect_offense(<<-RUBY) diff --git a/spec/rubocop/cop/rspec/let_before_examples_spec.rb b/spec/rubocop/cop/rspec/let_before_examples_spec.rb index 1fc106d37..1031f241d 100644 --- a/spec/rubocop/cop/rspec/let_before_examples_spec.rb +++ b/spec/rubocop/cop/rspec/let_before_examples_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::LetBeforeExamples do - subject(:cop) { described_class.new } - it 'flags `let` after `it`' do expect_offense(<<-RUBY) RSpec.describe User do diff --git a/spec/rubocop/cop/rspec/let_setup_spec.rb b/spec/rubocop/cop/rspec/let_setup_spec.rb index 152a661a0..337eacb75 100644 --- a/spec/rubocop/cop/rspec/let_setup_spec.rb +++ b/spec/rubocop/cop/rspec/let_setup_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::LetSetup do - subject(:cop) { described_class.new } - it 'complains when let! is used and not referenced' do expect_offense(<<-RUBY) describe Foo do diff --git a/spec/rubocop/cop/rspec/message_chain_spec.rb b/spec/rubocop/cop/rspec/message_chain_spec.rb index 7ede24e58..0477d2aa7 100644 --- a/spec/rubocop/cop/rspec/message_chain_spec.rb +++ b/spec/rubocop/cop/rspec/message_chain_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::MessageChain do - subject(:cop) { described_class.new } - it 'finds `receive_message_chain`' do expect_offense(<<-RUBY) before do diff --git a/spec/rubocop/cop/rspec/message_expectation_spec.rb b/spec/rubocop/cop/rspec/message_expectation_spec.rb index 71051dd0f..d0745ee3e 100644 --- a/spec/rubocop/cop/rspec/message_expectation_spec.rb +++ b/spec/rubocop/cop/rspec/message_expectation_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::MessageExpectation, :config do +RSpec.describe RuboCop::Cop::RSpec::MessageExpectation do context 'when EnforcedStyle is allow' do let(:cop_config) do { 'EnforcedStyle' => 'allow' } diff --git a/spec/rubocop/cop/rspec/message_spies_spec.rb b/spec/rubocop/cop/rspec/message_spies_spec.rb index 3905036ca..c6f3ac7f1 100644 --- a/spec/rubocop/cop/rspec/message_spies_spec.rb +++ b/spec/rubocop/cop/rspec/message_spies_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::MessageSpies, :config do +RSpec.describe RuboCop::Cop::RSpec::MessageSpies do context 'when EnforcedStyle is have_received' do let(:cop_config) do { 'EnforcedStyle' => 'have_received' } diff --git a/spec/rubocop/cop/rspec/missing_example_group_argument_spec.rb b/spec/rubocop/cop/rspec/missing_example_group_argument_spec.rb index e01e4c8b1..bc359bb2b 100644 --- a/spec/rubocop/cop/rspec/missing_example_group_argument_spec.rb +++ b/spec/rubocop/cop/rspec/missing_example_group_argument_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::MissingExampleGroupArgument do - subject(:cop) { described_class.new } - it 'accepts describe with an argument' do expect_no_offenses(<<-RUBY) describe FooClass do diff --git a/spec/rubocop/cop/rspec/multiple_describes_spec.rb b/spec/rubocop/cop/rspec/multiple_describes_spec.rb index 68376e697..8d187af20 100644 --- a/spec/rubocop/cop/rspec/multiple_describes_spec.rb +++ b/spec/rubocop/cop/rspec/multiple_describes_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::MultipleDescribes do - subject(:cop) { described_class.new } - it 'finds multiple top level describes with class and method' do expect_offense(<<-RUBY) describe MyClass, '.do_something' do; end diff --git a/spec/rubocop/cop/rspec/multiple_expectations_spec.rb b/spec/rubocop/cop/rspec/multiple_expectations_spec.rb index 7d8d2363e..9a3e2bd95 100644 --- a/spec/rubocop/cop/rspec/multiple_expectations_spec.rb +++ b/spec/rubocop/cop/rspec/multiple_expectations_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::MultipleExpectations, :config do +RSpec.describe RuboCop::Cop::RSpec::MultipleExpectations do context 'without configuration' do let(:cop_config) { {} } diff --git a/spec/rubocop/cop/rspec/named_subject_spec.rb b/spec/rubocop/cop/rspec/named_subject_spec.rb index ae89c0a31..9dfd179af 100644 --- a/spec/rubocop/cop/rspec/named_subject_spec.rb +++ b/spec/rubocop/cop/rspec/named_subject_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::NamedSubject, :config do +RSpec.describe RuboCop::Cop::RSpec::NamedSubject do shared_examples_for 'checking subject outside of shared examples' do it 'checks `it` and `specify` for explicit subject usage' do expect_offense(<<-RUBY) diff --git a/spec/rubocop/cop/rspec/nested_groups_spec.rb b/spec/rubocop/cop/rspec/nested_groups_spec.rb index 64640293f..2b6dc6177 100644 --- a/spec/rubocop/cop/rspec/nested_groups_spec.rb +++ b/spec/rubocop/cop/rspec/nested_groups_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::NestedGroups, :config do +RSpec.describe RuboCop::Cop::RSpec::NestedGroups do it 'flags nested contexts' do expect_offense(<<-RUBY) describe MyClass do diff --git a/spec/rubocop/cop/rspec/not_to_not_spec.rb b/spec/rubocop/cop/rspec/not_to_not_spec.rb index 93706b6c3..8d8dc7be3 100644 --- a/spec/rubocop/cop/rspec/not_to_not_spec.rb +++ b/spec/rubocop/cop/rspec/not_to_not_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::NotToNot, :config do +RSpec.describe RuboCop::Cop::RSpec::NotToNot do context 'when EnforcedStyle is `not_to`' do let(:cop_config) { { 'EnforcedStyle' => 'not_to' } } diff --git a/spec/rubocop/cop/rspec/overwriting_setup_spec.rb b/spec/rubocop/cop/rspec/overwriting_setup_spec.rb index 865e0b95e..7ae84b38a 100644 --- a/spec/rubocop/cop/rspec/overwriting_setup_spec.rb +++ b/spec/rubocop/cop/rspec/overwriting_setup_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::OverwritingSetup do - subject(:cop) { described_class.new } - it 'finds overwriten `let`' do expect_offense(<<-RUBY) RSpec.describe User do diff --git a/spec/rubocop/cop/rspec/pending_spec.rb b/spec/rubocop/cop/rspec/pending_spec.rb index f3db64731..2b869a3f0 100644 --- a/spec/rubocop/cop/rspec/pending_spec.rb +++ b/spec/rubocop/cop/rspec/pending_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::Pending do - subject(:cop) { described_class.new } - it 'flags xcontext' do expect_offense(<<-RUBY) xcontext 'test' do diff --git a/spec/rubocop/cop/rspec/predicate_matcher_spec.rb b/spec/rubocop/cop/rspec/predicate_matcher_spec.rb index 02fe996fd..07f8d7825 100644 --- a/spec/rubocop/cop/rspec/predicate_matcher_spec.rb +++ b/spec/rubocop/cop/rspec/predicate_matcher_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::PredicateMatcher, :config do +RSpec.describe RuboCop::Cop::RSpec::PredicateMatcher do let(:cop_config) do { 'EnforcedStyle' => enforced_style, 'Strict' => strict, diff --git a/spec/rubocop/cop/rspec/rails/http_status_spec.rb b/spec/rubocop/cop/rspec/rails/http_status_spec.rb index d4ca57c8e..ebaec9173 100644 --- a/spec/rubocop/cop/rspec/rails/http_status_spec.rb +++ b/spec/rubocop/cop/rspec/rails/http_status_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::Rails::HttpStatus, :config do +RSpec.describe RuboCop::Cop::RSpec::Rails::HttpStatus do context 'when EnforcedStyle is `symbolic`' do let(:cop_config) { { 'EnforcedStyle' => 'symbolic' } } diff --git a/spec/rubocop/cop/rspec/receive_counts_spec.rb b/spec/rubocop/cop/rspec/receive_counts_spec.rb index 4b25b6531..08750792b 100644 --- a/spec/rubocop/cop/rspec/receive_counts_spec.rb +++ b/spec/rubocop/cop/rspec/receive_counts_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::ReceiveCounts do - subject(:cop) { described_class.new } - it 'flags usage of `exactly(1).times`' do expect_offense(<<-RUBY) expect(foo).to receive(:bar).exactly(1).times diff --git a/spec/rubocop/cop/rspec/receive_never_spec.rb b/spec/rubocop/cop/rspec/receive_never_spec.rb index f56682ceb..cb24855d0 100644 --- a/spec/rubocop/cop/rspec/receive_never_spec.rb +++ b/spec/rubocop/cop/rspec/receive_never_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::ReceiveNever do - subject(:cop) { described_class.new } - it 'flags usage of `never`' do expect_offense(<<-RUBY) expect(foo).to receive(:bar).never diff --git a/spec/rubocop/cop/rspec/repeated_description_spec.rb b/spec/rubocop/cop/rspec/repeated_description_spec.rb index 83d8010bd..315005f57 100644 --- a/spec/rubocop/cop/rspec/repeated_description_spec.rb +++ b/spec/rubocop/cop/rspec/repeated_description_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::RepeatedDescription do - subject(:cop) { described_class.new } - it 'registers an offense for repeated descriptions' do expect_offense(<<-RUBY) describe 'doing x' do diff --git a/spec/rubocop/cop/rspec/repeated_example_group_body_spec.rb b/spec/rubocop/cop/rspec/repeated_example_group_body_spec.rb index c30d9533c..5fab4cd72 100644 --- a/spec/rubocop/cop/rspec/repeated_example_group_body_spec.rb +++ b/spec/rubocop/cop/rspec/repeated_example_group_body_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::RepeatedExampleGroupBody do - subject(:cop) { described_class.new } - it 'registers an offense for repeated describe body' do expect_offense(<<-RUBY) describe 'doing x' do diff --git a/spec/rubocop/cop/rspec/repeated_example_group_description_spec.rb b/spec/rubocop/cop/rspec/repeated_example_group_description_spec.rb index e96d1b67c..9a8b6df59 100644 --- a/spec/rubocop/cop/rspec/repeated_example_group_description_spec.rb +++ b/spec/rubocop/cop/rspec/repeated_example_group_description_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::RepeatedExampleGroupDescription do - subject(:cop) { described_class.new } - it 'registers an offense for repeated describe descriptions' do expect_offense(<<-RUBY) describe 'doing x' do diff --git a/spec/rubocop/cop/rspec/repeated_example_spec.rb b/spec/rubocop/cop/rspec/repeated_example_spec.rb index 879677070..cbaca631d 100644 --- a/spec/rubocop/cop/rspec/repeated_example_spec.rb +++ b/spec/rubocop/cop/rspec/repeated_example_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::RepeatedExample do - subject(:cop) { described_class.new } - it 'registers an offense for repeated example' do expect_offense(<<-RUBY) describe 'doing x' do diff --git a/spec/rubocop/cop/rspec/return_from_stub_spec.rb b/spec/rubocop/cop/rspec/return_from_stub_spec.rb index 253191911..390c83cec 100644 --- a/spec/rubocop/cop/rspec/return_from_stub_spec.rb +++ b/spec/rubocop/cop/rspec/return_from_stub_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::ReturnFromStub, :config do +RSpec.describe RuboCop::Cop::RSpec::ReturnFromStub do let(:cop_config) do { 'EnforcedStyle' => enforced_style } end diff --git a/spec/rubocop/cop/rspec/scattered_let_spec.rb b/spec/rubocop/cop/rspec/scattered_let_spec.rb index f496b41cb..503003c2b 100644 --- a/spec/rubocop/cop/rspec/scattered_let_spec.rb +++ b/spec/rubocop/cop/rspec/scattered_let_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::ScatteredLet do - subject(:cop) { described_class.new } - it 'flags `let` after the first different node ' do expect_offense(<<-RUBY) RSpec.describe User do diff --git a/spec/rubocop/cop/rspec/scattered_setup_spec.rb b/spec/rubocop/cop/rspec/scattered_setup_spec.rb index d0ccce9ac..3a7c9c7ee 100644 --- a/spec/rubocop/cop/rspec/scattered_setup_spec.rb +++ b/spec/rubocop/cop/rspec/scattered_setup_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::ScatteredSetup do - subject(:cop) { described_class.new } - it 'flags multiple hooks in the same example group' do expect_offense(<<-RUBY) describe Foo do diff --git a/spec/rubocop/cop/rspec/shared_context_spec.rb b/spec/rubocop/cop/rspec/shared_context_spec.rb index 0d13257ea..58086a63b 100644 --- a/spec/rubocop/cop/rspec/shared_context_spec.rb +++ b/spec/rubocop/cop/rspec/shared_context_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::SharedContext do - subject(:cop) { described_class.new } - describe 'shared_context' do it 'does not register an offense for empty contexts' do expect_no_offenses(<<-RUBY) diff --git a/spec/rubocop/cop/rspec/shared_examples_spec.rb b/spec/rubocop/cop/rspec/shared_examples_spec.rb index cc1f46510..8d8572e4b 100644 --- a/spec/rubocop/cop/rspec/shared_examples_spec.rb +++ b/spec/rubocop/cop/rspec/shared_examples_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::SharedExamples do - subject(:cop) { described_class.new } - it 'registers an offense when using symbolic title' do expect_offense(<<-RUBY) it_behaves_like :foo_bar_baz diff --git a/spec/rubocop/cop/rspec/single_argument_message_chain_spec.rb b/spec/rubocop/cop/rspec/single_argument_message_chain_spec.rb index 7839214c8..b789ef64e 100644 --- a/spec/rubocop/cop/rspec/single_argument_message_chain_spec.rb +++ b/spec/rubocop/cop/rspec/single_argument_message_chain_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::SingleArgumentMessageChain do - subject(:cop) { described_class.new } - describe 'receive_message_chain' do it 'reports single-argument calls' do expect_offense(<<-RUBY) diff --git a/spec/rubocop/cop/rspec/subject_stub_spec.rb b/spec/rubocop/cop/rspec/subject_stub_spec.rb index 8f19ffaba..ed8a037fa 100644 --- a/spec/rubocop/cop/rspec/subject_stub_spec.rb +++ b/spec/rubocop/cop/rspec/subject_stub_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::SubjectStub do - subject(:cop) { described_class.new } - it 'flags when subject is stubbed' do expect_offense(<<-RUBY) describe Foo do diff --git a/spec/rubocop/cop/rspec/unspecified_exception_spec.rb b/spec/rubocop/cop/rspec/unspecified_exception_spec.rb index 46b2e99b2..f41483afe 100644 --- a/spec/rubocop/cop/rspec/unspecified_exception_spec.rb +++ b/spec/rubocop/cop/rspec/unspecified_exception_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::UnspecifiedException do - subject(:cop) { described_class.new } - context 'with raise_error matcher' do it 'detects the `unspecified_exception` offense' do expect_offense(<<-RUBY) diff --git a/spec/rubocop/cop/rspec/variable_definition_spec.rb b/spec/rubocop/cop/rspec/variable_definition_spec.rb index f488199fd..fa98d035e 100644 --- a/spec/rubocop/cop/rspec/variable_definition_spec.rb +++ b/spec/rubocop/cop/rspec/variable_definition_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::VariableDefinition, :config do +RSpec.describe RuboCop::Cop::RSpec::VariableDefinition do context 'when EnforcedStyle is `symbols`' do let(:cop_config) { { 'EnforcedStyle' => 'symbols' } } diff --git a/spec/rubocop/cop/rspec/variable_name_spec.rb b/spec/rubocop/cop/rspec/variable_name_spec.rb index 5796baff9..25be64663 100644 --- a/spec/rubocop/cop/rspec/variable_name_spec.rb +++ b/spec/rubocop/cop/rspec/variable_name_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::VariableName, :config do +RSpec.describe RuboCop::Cop::RSpec::VariableName do context 'when configured for `snake_case`' do let(:cop_config) { { 'EnforcedStyle' => 'snake_case' } } diff --git a/spec/rubocop/cop/rspec/verified_doubles_spec.rb b/spec/rubocop/cop/rspec/verified_doubles_spec.rb index 2b56ce87c..13e2f679f 100644 --- a/spec/rubocop/cop/rspec/verified_doubles_spec.rb +++ b/spec/rubocop/cop/rspec/verified_doubles_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe RuboCop::Cop::RSpec::VerifiedDoubles, :config do +RSpec.describe RuboCop::Cop::RSpec::VerifiedDoubles do it 'finds a `double` instead of an `instance_double`' do expect_offense(<<-RUBY) it do diff --git a/spec/rubocop/cop/rspec/void_expect_spec.rb b/spec/rubocop/cop/rspec/void_expect_spec.rb index b4a75abe9..26b421dd1 100644 --- a/spec/rubocop/cop/rspec/void_expect_spec.rb +++ b/spec/rubocop/cop/rspec/void_expect_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::VoidExpect do - subject(:cop) { described_class.new } - it 'registers offenses to void `expect`' do expect_offense(<<-RUBY) it 'something' do diff --git a/spec/rubocop/cop/rspec/yield_spec.rb b/spec/rubocop/cop/rspec/yield_spec.rb index 737243533..8b8d482b7 100644 --- a/spec/rubocop/cop/rspec/yield_spec.rb +++ b/spec/rubocop/cop/rspec/yield_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true RSpec.describe RuboCop::Cop::RSpec::Yield do - subject(:cop) { described_class.new } - it 'flags `block.call`' do expect_offense(<<-RUBY) allow(foo).to receive(:bar) { |&block| block.call } diff --git a/spec/shared/default_rspec_language_config_context.rb b/spec/shared/default_rspec_language_config_context.rb new file mode 100644 index 000000000..84cb4e102 --- /dev/null +++ b/spec/shared/default_rspec_language_config_context.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +RSpec.shared_context 'with default AllCops.RSpec.Language config' do + let(:all_cops_config) do + cfg = { 'TargetRubyVersion' => ruby_version } + cfg['TargetRailsVersion'] = rails_version if rails_version + cfg.merge({ + 'RSpec' => { + 'Language' => RuboCop::ConfigLoader + .default_configuration + .for_all_cops.dig('RSpec', 'Language') + } + }) + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index c15f55c71..386d4769f 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -21,6 +21,15 @@ module SpecHelper meta[:type] = :cop_spec end + # Include config shared context for all cop specs + config.define_derived_metadata(type: :cop_spec) do |metadata| + metadata[:config] = true + end + + # Include default RSpec Language shared context for all cop specs + config.include_context 'with default AllCops.RSpec.Language config', + type: :cop_spec + config.order = :random # Forbid RSpec from monkey patching any of our objects