# typed: true # DO NOT EDIT MANUALLY # This is an autogenerated file for types exported from the `rubocop-rspec` gem. # Please instead update this file by running `bin/tapioca gem rubocop-rspec`. # source://rubocop-rspec//lib/rubocop/rspec.rb#3 module RuboCop; end class RuboCop::AST::Node < ::Parser::AST::Node include ::RuboCop::RSpec::Node end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/file_help.rb#4 module RuboCop::Cop; end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/file_help.rb#5 module RuboCop::Cop::RSpec; end # Checks that left braces for adjacent single line lets are aligned. # # @example # # bad # let(:foobar) { blahblah } # let(:baz) { bar } # let(:a) { b } # # # good # let(:foobar) { blahblah } # let(:baz) { bar } # let(:a) { b } # # source://rubocop-rspec//lib/rubocop/cop/rspec/align_left_let_brace.rb#19 class RuboCop::Cop::RSpec::AlignLeftLetBrace < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/align_left_let_brace.rb#28 def on_new_investigation; end private # source://rubocop-rspec//lib/rubocop/cop/rspec/align_left_let_brace.rb#43 def token_aligner; end class << self # source://rubocop-rspec//lib/rubocop/cop/rspec/align_left_let_brace.rb#24 def autocorrect_incompatible_with; end end end # source://rubocop-rspec//lib/rubocop/cop/rspec/align_left_let_brace.rb#22 RuboCop::Cop::RSpec::AlignLeftLetBrace::MSG = T.let(T.unsafe(nil), String) # Checks that right braces for adjacent single line lets are aligned. # # @example # # bad # let(:foobar) { blahblah } # let(:baz) { bar } # let(:a) { b } # # # good # let(:foobar) { blahblah } # let(:baz) { bar } # let(:a) { b } # # source://rubocop-rspec//lib/rubocop/cop/rspec/align_right_let_brace.rb#19 class RuboCop::Cop::RSpec::AlignRightLetBrace < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/align_right_let_brace.rb#28 def on_new_investigation; end private # source://rubocop-rspec//lib/rubocop/cop/rspec/align_right_let_brace.rb#43 def token_aligner; end class << self # source://rubocop-rspec//lib/rubocop/cop/rspec/align_right_let_brace.rb#24 def autocorrect_incompatible_with; end end end # source://rubocop-rspec//lib/rubocop/cop/rspec/align_right_let_brace.rb#22 RuboCop::Cop::RSpec::AlignRightLetBrace::MSG = T.let(T.unsafe(nil), String) # Check that instances are not being stubbed globally. # # Prefer instance doubles over stubbing any instance of a class # # @example # # bad # describe MyClass do # before { allow_any_instance_of(MyClass).to receive(:foo) } # end # # # good # describe MyClass do # let(:my_instance) { instance_double(MyClass) } # # before do # allow(MyClass).to receive(:new).and_return(my_instance) # allow(my_instance).to receive(:foo) # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/any_instance.rb#26 class RuboCop::Cop::RSpec::AnyInstance < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/any_instance.rb#34 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/any_instance.rb#27 RuboCop::Cop::RSpec::AnyInstance::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/any_instance.rb#28 RuboCop::Cop::RSpec::AnyInstance::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks that around blocks actually run the test. # # @example # # bad # around do # some_method # end # # around do |test| # some_method # end # # # good # around do |test| # some_method # test.call # end # # around do |test| # some_method # test.run # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#29 class RuboCop::Cop::RSpec::AroundBlock < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#45 def find_arg_usage(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#35 def hook_block(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#40 def hook_numblock(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#49 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#59 def on_numblock(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#67 def add_no_arg_offense(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#84 def check_for_numblock(block); end # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#71 def check_for_unused_proxy(block, proxy); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#30 RuboCop::Cop::RSpec::AroundBlock::MSG_NO_ARG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/around_block.rb#31 RuboCop::Cop::RSpec::AroundBlock::MSG_UNUSED_ARG = T.let(T.unsafe(nil), String) # @abstract parent class to RSpec cops # # source://rubocop-rspec//lib/rubocop/cop/rspec/base.rb#7 class RuboCop::Cop::RSpec::Base < ::RuboCop::Cop::Base include ::RuboCop::RSpec::Language extend ::RuboCop::RSpec::Language::NodePattern # Set the config for dynamic DSL configuration-aware helpers # that have no other means of accessing the configuration. # # source://rubocop-rspec//lib/rubocop/cop/rspec/base.rb#20 def on_new_investigation; end class << self # Invoke the original inherited hook so our cops are recognized # # source://rubocop-rspec//lib/rubocop/cop/rspec/base.rb#14 def inherited(subclass); end end end # Check for expectations where `be` is used without argument. # # The `be` matcher is too generic, as it pass on everything that is not # nil or false. If that is the exact intend, use `be_truthy`. In all other # cases it's better to specify what exactly is the expected value. # # @example # # bad # expect(foo).to be # # # good # expect(foo).to be_truthy # expect(foo).to be 1.0 # expect(foo).to be(true) # # source://rubocop-rspec//lib/rubocop/cop/rspec/be.rb#21 class RuboCop::Cop::RSpec::Be < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/be.rb#27 def be_without_args(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/be.rb#31 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/be.rb#22 RuboCop::Cop::RSpec::Be::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/be.rb#24 RuboCop::Cop::RSpec::Be::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Prefer using `be_empty` when checking for an empty array. # # @example # # bad # expect(array).to contain_exactly # expect(array).to match_array([]) # # # good # expect(array).to be_empty # # source://rubocop-rspec//lib/rubocop/cop/rspec/be_empty.rb#16 class RuboCop::Cop::RSpec::BeEmpty < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/be_empty.rb#23 def expect_array_matcher?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/be_empty.rb#35 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/be_empty.rb#19 RuboCop::Cop::RSpec::BeEmpty::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/be_empty.rb#20 RuboCop::Cop::RSpec::BeEmpty::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Check for expectations where `be(...)` can replace `eq(...)`. # # The `be` matcher compares by identity while the `eq` matcher compares # using `==`. Booleans and nil can be compared by identity and therefore # the `be` matcher is preferable as it is a more strict test. # # @example # # bad # expect(foo).to eq(true) # expect(foo).to eq(false) # expect(foo).to eq(nil) # # # good # expect(foo).to be(true) # expect(foo).to be(false) # expect(foo).to be(nil) # # source://rubocop-rspec//lib/rubocop/cop/rspec/be_eq.rb#26 class RuboCop::Cop::RSpec::BeEq < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/be_eq.rb#33 def eq_type_with_identity?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/be_eq.rb#37 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/be_eq.rb#29 RuboCop::Cop::RSpec::BeEq::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/be_eq.rb#30 RuboCop::Cop::RSpec::BeEq::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Check for expectations where `be(...)` can replace `eql(...)`. # # The `be` matcher compares by identity while the `eql` matcher # compares using `eql?`. Integers, floats, booleans, symbols, and nil # can be compared by identity and therefore the `be` matcher is # preferable as it is a more strict test. # # This cop only looks for instances of `expect(...).to eql(...)`. We # do not check `to_not` or `not_to` since `!eql?` is more strict # than `!equal?`. We also do not try to flag `eq` because if # `a == b`, and `b` is comparable by identity, `a` is still not # necessarily the same type as `b` since the `#==` operator can # coerce objects for comparison. # # @example # # bad # expect(foo).to eql(1) # expect(foo).to eql(1.0) # expect(foo).to eql(true) # expect(foo).to eql(false) # expect(foo).to eql(:bar) # expect(foo).to eql(nil) # # # good # expect(foo).to be(1) # expect(foo).to be(1.0) # expect(foo).to be(true) # expect(foo).to be(false) # expect(foo).to be(:bar) # expect(foo).to be(nil) # # source://rubocop-rspec//lib/rubocop/cop/rspec/be_eql.rb#40 class RuboCop::Cop::RSpec::BeEql < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/be_eql.rb#47 def eql_type_with_identity(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/be_eql.rb#51 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/be_eql.rb#43 RuboCop::Cop::RSpec::BeEql::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/be_eql.rb#44 RuboCop::Cop::RSpec::BeEql::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Ensures a consistent style is used when matching `nil`. # # You can either use the more specific `be_nil` matcher, or the more # generic `be` matcher with a `nil` argument. # # This cop can be configured using the `EnforcedStyle` option # # @example `EnforcedStyle: be_nil` (default) # # bad # expect(foo).to be(nil) # # # good # expect(foo).to be_nil # @example `EnforcedStyle: be` # # bad # expect(foo).to be_nil # # # good # expect(foo).to be(nil) # # source://rubocop-rspec//lib/rubocop/cop/rspec/be_nil.rb#27 class RuboCop::Cop::RSpec::BeNil < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/be_nil.rb#36 def be_nil_matcher?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/be_nil.rb#41 def nil_value_expectation?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/be_nil.rb#45 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/be_nil.rb#64 def check_be_nil_style(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/be_nil.rb#56 def check_be_style(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/be_nil.rb#31 RuboCop::Cop::RSpec::BeNil::BE_MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/be_nil.rb#32 RuboCop::Cop::RSpec::BeNil::BE_NIL_MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/be_nil.rb#33 RuboCop::Cop::RSpec::BeNil::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Check that before/after(:all/:context) isn't being used. # # @example # # bad - Faster but risk of state leaking between examples # describe MyClass do # before(:all) { Widget.create } # after(:context) { Widget.delete_all } # end # # # good - Slower but examples are properly isolated # describe MyClass do # before(:each) { Widget.create } # after(:each) { Widget.delete_all } # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/before_after_all.rb#21 class RuboCop::Cop::RSpec::BeforeAfterAll < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/before_after_all.rb#30 def before_or_after_all(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/before_after_all.rb#34 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/before_after_all.rb#22 RuboCop::Cop::RSpec::BeforeAfterAll::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/before_after_all.rb#27 RuboCop::Cop::RSpec::BeforeAfterAll::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set) # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/current_path_expectation.rb#6 module RuboCop::Cop::RSpec::Capybara; end # Checks that no expectations are set on Capybara's `current_path`. # # The # https://www.rubydoc.info/github/teamcapybara/capybara/master/Capybara/RSpecMatchers#have_current_path-instance_method[`have_current_path` matcher] # should be used on `page` to set expectations on Capybara's # current path, since it uses # https://github.com/teamcapybara/capybara/blob/master/README.md#asynchronous-javascript-ajax-and-friends[Capybara's waiting functionality] # which ensures that preceding actions (like `click_link`) have # completed. # # This cop does not support autocorrection in some cases. # # @example # # bad # expect(current_path).to eq('/callback') # # # good # expect(page).to have_current_path('/callback') # # # bad (does not support autocorrection) # expect(page.current_path).to match(variable) # # # good # expect(page).to have_current_path('/callback') # # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/current_path_expectation.rb#34 RuboCop::Cop::RSpec::Capybara::CurrentPathExpectation = RuboCop::Cop::Capybara::CurrentPathExpectation # Checks for consistent method usage in feature specs. # # By default, the cop disables all Capybara-specific methods that have # the same native RSpec method (e.g. are just aliases). Some teams # however may prefer using some of the Capybara methods (like `feature`) # to make it obvious that the test uses Capybara, while still disable # the rest of the methods, like `given` (alias for `let`), `background` # (alias for `before`), etc. You can configure which of the methods to # be enabled by using the EnabledMethods configuration option. # # @example # # bad # feature 'User logs in' do # given(:user) { User.new } # # background do # visit new_session_path # end # # scenario 'with OAuth' do # # ... # end # end # # # good # describe 'User logs in' do # let(:user) { User.new } # # before do # visit new_session_path # end # # it 'with OAuth' do # # ... # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/feature_methods.rb#44 class RuboCop::Cop::RSpec::Capybara::FeatureMethods < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::InsideExampleGroup extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/feature_methods.rb#61 def capybara_speak(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/feature_methods.rb#66 def feature_method(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/feature_methods.rb#84 def message(range); end # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/feature_methods.rb#72 def on_block(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/feature_methods.rb#91 def enabled?(method_name); end # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/feature_methods.rb#95 def enabled_methods; end end # https://github.com/teamcapybara/capybara/blob/e283c1aeaa72441f5403963577e16333bf111a81/lib/capybara/rspec/features.rb#L31-L36 # # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/feature_methods.rb#51 RuboCop::Cop::RSpec::Capybara::FeatureMethods::MAP = T.let(T.unsafe(nil), Hash) # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/feature_methods.rb#48 RuboCop::Cop::RSpec::Capybara::FeatureMethods::MSG = T.let(T.unsafe(nil), String) # Checks for usage of deprecated style methods. # # @example when using `assert_style` # # bad # page.find(:css, '#first').assert_style(display: 'block') # # # good # page.find(:css, '#first').assert_matches_style(display: 'block') # @example when using `has_style?` # # bad # expect(page.find(:css, 'first') # .has_style?(display: 'block')).to be true # # # good # expect(page.find(:css, 'first') # .matches_style?(display: 'block')).to be true # @example when using `have_style` # # bad # expect(page).to have_style(display: 'block') # # # good # expect(page).to match_style(display: 'block') # # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/match_style.rb#34 RuboCop::Cop::RSpec::Capybara::MatchStyle = RuboCop::Cop::Capybara::MatchStyle # Enforces use of `have_no_*` or `not_to` for negated expectations. # # @example EnforcedStyle: not_to (default) # # bad # expect(page).to have_no_selector # expect(page).to have_no_css('a') # # # good # expect(page).not_to have_selector # expect(page).not_to have_css('a') # @example EnforcedStyle: have_no # # bad # expect(page).not_to have_selector # expect(page).not_to have_css('a') # # # good # expect(page).to have_no_selector # expect(page).to have_no_css('a') # # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/negation_matcher.rb#29 RuboCop::Cop::RSpec::Capybara::NegationMatcher = RuboCop::Cop::Capybara::NegationMatcher # Checks for there is a more specific actions offered by Capybara. # # @example # # # bad # find('a').click # find('button.cls').click # find('a', exact_text: 'foo').click # find('div button').click # # # good # click_link # click_button(class: 'cls') # click_link(exact_text: 'foo') # find('div').click_button # # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/specific_actions.rb#25 RuboCop::Cop::RSpec::Capybara::SpecificActions = RuboCop::Cop::Capybara::SpecificActions # Checks if there is a more specific finder offered by Capybara. # # @example # # bad # find('#some-id') # find('[visible][id=some-id]') # # # good # find_by_id('some-id') # find_by_id('some-id', visible: true) # # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/specific_finders.rb#20 RuboCop::Cop::RSpec::Capybara::SpecificFinders = RuboCop::Cop::Capybara::SpecificFinders # Checks for there is a more specific matcher offered by Capybara. # # @example # # # bad # expect(page).to have_selector('button') # expect(page).to have_no_selector('button.cls') # expect(page).to have_css('button') # expect(page).to have_no_css('a.cls', href: 'http://example.com') # expect(page).to have_css('table.cls') # expect(page).to have_css('select') # expect(page).to have_css('input', exact_text: 'foo') # # # good # expect(page).to have_button # expect(page).to have_no_button(class: 'cls') # expect(page).to have_button # expect(page).to have_no_link('foo', class: 'cls', href: 'http://example.com') # expect(page).to have_table(class: 'cls') # expect(page).to have_select # expect(page).to have_field('foo') # # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/specific_matcher.rb#31 RuboCop::Cop::RSpec::Capybara::SpecificMatcher = RuboCop::Cop::Capybara::SpecificMatcher # Checks for boolean visibility in Capybara finders. # # Capybara lets you find elements that match a certain visibility # using the `:visible` option. `:visible` accepts both boolean and # symbols as values, however using booleans can have unwanted # effects. `visible: false` does not find just invisible elements, # but both visible and invisible elements. For expressiveness and # clarity, use one of the # symbol values, `:all`, `:hidden` or # `:visible`. # Read more in # https://www.rubydoc.info/gems/capybara/Capybara%2FNode%2FFinders:all[the documentation]. # # @example # # bad # expect(page).to have_selector('.foo', visible: false) # expect(page).to have_css('.foo', visible: true) # expect(page).to have_link('my link', visible: false) # # # good # expect(page).to have_selector('.foo', visible: :visible) # expect(page).to have_css('.foo', visible: :all) # expect(page).to have_link('my link', visible: :hidden) # # source://rubocop-rspec//lib/rubocop/cop/rspec/capybara/visibility_matcher.rb#32 RuboCop::Cop::RSpec::Capybara::VisibilityMatcher = RuboCop::Cop::Capybara::VisibilityMatcher # Prefer negated matchers over `to change.by(0)`. # # In the case of composite expectations, cop suggest using the # negation matchers of `RSpec::Matchers#change`. # # By default the cop does not support autocorrect of # compound expectations, but if you set the # negated matcher for `change`, e.g. `not_change` with # the `NegatedMatcher` option, the cop will perform the autocorrection. # # @example NegatedMatcher: ~ (default) # # bad # expect { run }.to change(Foo, :bar).by(0) # expect { run }.to change { Foo.bar }.by(0) # # # bad - compound expectations (does not support autocorrection) # expect { run } # .to change(Foo, :bar).by(0) # .and change(Foo, :baz).by(0) # expect { run } # .to change { Foo.bar }.by(0) # .and change { Foo.baz }.by(0) # # # good # expect { run }.not_to change(Foo, :bar) # expect { run }.not_to change { Foo.bar } # # # good - compound expectations # define_negated_matcher :not_change, :change # expect { run } # .to not_change(Foo, :bar) # .and not_change(Foo, :baz) # expect { run } # .to not_change { Foo.bar } # .and not_change { Foo.baz } # @example NegatedMatcher: not_change # # bad (support autocorrection to good case) # expect { run } # .to change(Foo, :bar).by(0) # .and change(Foo, :baz).by(0) # expect { run } # .to change { Foo.bar }.by(0) # .and change { Foo.baz }.by(0) # # # good # define_negated_matcher :not_change, :change # expect { run } # .to not_change(Foo, :bar) # .and not_change(Foo, :baz) # expect { run } # .to not_change { Foo.bar } # .and not_change { Foo.baz } # # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#60 class RuboCop::Cop::RSpec::ChangeByZero < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#88 def change_nodes(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#71 def expect_change_with_arguments(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#78 def expect_change_with_block(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#92 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#133 def autocorrect(corrector, node, change_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#140 def autocorrect_compound(corrector, node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#120 def compound_expectations?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#150 def insert_operator(corrector, node, change_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#124 def message(change_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#128 def message_compound(change_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#174 def negated_matcher; end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#178 def preferred_method; end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#105 def register_offense(node, change_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#163 def remove_by_zero(corrector, node, change_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#159 def replace_node(node, change_node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#67 RuboCop::Cop::RSpec::ChangeByZero::CHANGE_METHODS = T.let(T.unsafe(nil), Set) # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#64 RuboCop::Cop::RSpec::ChangeByZero::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#65 RuboCop::Cop::RSpec::ChangeByZero::MSG_COMPOUND = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/change_by_zero.rb#68 RuboCop::Cop::RSpec::ChangeByZero::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set) # Enforces consistent use of `be_a` or `be_kind_of`. # # @example EnforcedStyle: be_a (default) # # bad # expect(object).to be_kind_of(String) # expect(object).to be_a_kind_of(String) # # # good # expect(object).to be_a(String) # expect(object).to be_an(String) # @example EnforcedStyle: be_kind_of # # bad # expect(object).to be_a(String) # expect(object).to be_an(String) # # # good # expect(object).to be_kind_of(String) # expect(object).to be_a_kind_of(String) # # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#26 class RuboCop::Cop::RSpec::ClassCheck < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#54 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#67 def autocorrect(corrector, node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#71 def format_message(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#79 def offending?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#87 def preferred_method_name; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#83 def preferred_method_name?(method_name); end # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#91 def preferred_method_names; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#32 RuboCop::Cop::RSpec::ClassCheck::METHOD_NAMES_FOR_BE_A = T.let(T.unsafe(nil), Set) # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#37 RuboCop::Cop::RSpec::ClassCheck::METHOD_NAMES_FOR_KIND_OF = T.let(T.unsafe(nil), Set) # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#30 RuboCop::Cop::RSpec::ClassCheck::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#42 RuboCop::Cop::RSpec::ClassCheck::PREFERRED_METHOD_NAME_BY_STYLE = T.let(T.unsafe(nil), Hash) # source://rubocop-rspec//lib/rubocop/cop/rspec/class_check.rb#47 RuboCop::Cop::RSpec::ClassCheck::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Help methods for working with nodes containing comments. # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/comments_help.rb#7 module RuboCop::Cop::RSpec::CommentsHelp include ::RuboCop::Cop::RSpec::FinalEndLocation # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/comments_help.rb#17 def begin_pos_with_comment(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/comments_help.rb#32 def buffer; end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/comments_help.rb#27 def end_line_position(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/comments_help.rb#10 def source_range_with_comment(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/comments_help.rb#23 def start_line_position(node); end end # Checks where `contain_exactly` is used. # # This cop checks for the following: # - Prefer `match_array` when matching array values. # - Prefer `be_empty` when using `contain_exactly` with no arguments. # # @example # # bad # it { is_expected.to contain_exactly(*array1, *array2) } # # # good # it { is_expected.to match_array(array1 + array2) } # # # good # it { is_expected.to contain_exactly(content, *array) } # # source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#22 class RuboCop::Cop::RSpec::ContainExactly < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#28 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#44 def autocorrect_for_populated_array(node, corrector); end # source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#36 def check_populated_collection(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#25 RuboCop::Cop::RSpec::ContainExactly::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#26 RuboCop::Cop::RSpec::ContainExactly::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # `context` should not be used for specifying methods. # # @example # # bad # context '#foo_bar' do # # ... # end # # context '.foo_bar' do # # ... # end # # # good # describe '#foo_bar' do # # ... # end # # describe '.foo_bar' do # # ... # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/context_method.rb#27 class RuboCop::Cop::RSpec::ContextMethod < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/context_method.rb#33 def context_method(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/context_method.rb#41 def on_block(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/context_method.rb#51 def method_name?(description); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/context_method.rb#30 RuboCop::Cop::RSpec::ContextMethod::MSG = T.let(T.unsafe(nil), String) # Checks that `context` docstring starts with an allowed prefix. # # The default list of prefixes is minimal. Users are encouraged to tailor # the configuration to meet project needs. Other acceptable prefixes may # include `if`, `unless`, `for`, `before`, `after`, or `during`. # They may consist of multiple words if desired. # # This cop can be customized allowed context description pattern # with `AllowedPatterns`. By default, there are no checking by pattern. # # @example `Prefixes` configuration # # .rubocop.yml # # RSpec/ContextWording: # # Prefixes: # # - when # # - with # # - without # # - if # # - unless # # - for # @example # # bad # context 'the display name not present' do # # ... # end # # # good # context 'when the display name is not present' do # # ... # end # @example `AllowedPatterns` configuration # # # .rubocop.yml # # RSpec/ContextWording: # # AllowedPatterns: # # - とき$ # @example # # bad # context '条件を満たす' do # # ... # end # # # good # context '条件を満たすとき' do # # ... # end # @see http://www.betterspecs.org/#contexts # # source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#58 class RuboCop::Cop::RSpec::ContextWording < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::AllowedPattern # source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#64 def context_wording(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#68 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#79 def allowed_patterns; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#87 def bad_pattern?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#93 def description(context); end # source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#101 def expect_patterns; end # source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#83 def prefix_regexes; end # source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#111 def prefixes; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#61 RuboCop::Cop::RSpec::ContextWording::MSG = T.let(T.unsafe(nil), String) # Check that the first argument to the top-level describe is a constant. # # It can be configured to ignore strings when certain metadata is passed. # # Ignores Rails and Aruba `type` metadata by default. # # @example `IgnoredMetadata` configuration # # .rubocop.yml # # RSpec/DescribeClass: # # IgnoredMetadata: # # type: # # - request # # - controller # @example # # bad # describe 'Do something' do # end # # # good # describe TestedClass do # subject { described_class } # end # # describe 'TestedClass::VERSION' do # subject { Object.const_get(self.class.description) } # end # # describe "A feature example", type: :feature do # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_class.rb#37 class RuboCop::Cop::RSpec::DescribeClass < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::TopLevelGroup # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_class.rb#44 def example_group_with_ignored_metadata?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_class.rb#49 def not_a_const_described(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_class.rb#58 def on_top_level_group(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_class.rb#54 def sym_pair(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_class.rb#79 def ignored_metadata; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_class.rb#68 def ignored_metadata?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_class.rb#74 def string_constant?(described); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_class.rb#40 RuboCop::Cop::RSpec::DescribeClass::MSG = T.let(T.unsafe(nil), String) # Checks that the second argument to `describe` specifies a method. # # @example # # bad # describe MyClass, 'do something' do # end # # # good # describe MyClass, '#my_instance_method' do # end # # describe MyClass, '.my_class_method' do # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_method.rb#20 class RuboCop::Cop::RSpec::DescribeMethod < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::TopLevelGroup # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_method.rb#34 def method_name?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_method.rb#38 def on_top_level_group(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_method.rb#27 def second_string_literal_argument(param0 = T.unsafe(nil)); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_method.rb#46 def method_name_prefix?(description); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_method.rb#23 RuboCop::Cop::RSpec::DescribeMethod::MSG = T.let(T.unsafe(nil), String) # Avoid describing symbols. # # @example # # bad # describe :my_method do # # ... # end # # # good # describe '#my_method' do # # ... # end # @see https://github.com/rspec/rspec-core/issues/1610 # # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_symbol.rb#20 class RuboCop::Cop::RSpec::DescribeSymbol < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_symbol.rb#25 def describe_symbol?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_symbol.rb#29 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_symbol.rb#21 RuboCop::Cop::RSpec::DescribeSymbol::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/describe_symbol.rb#22 RuboCop::Cop::RSpec::DescribeSymbol::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks that tests use `described_class`. # # If the first argument of describe is a class, the class is exposed to # each example via described_class. # # This cop can be configured using the `EnforcedStyle`, `SkipBlocks` # and `OnlyStaticConstants` options. # `OnlyStaticConstants` is only relevant when `EnforcedStyle` is # `described_class`. # # There's a known caveat with rspec-rails's `controller` helper that # runs its block in a different context, and `described_class` is not # available to it. `SkipBlocks` option excludes detection in all # non-RSpec related blocks. # # To narrow down this setting to only a specific directory, it is # possible to use an overriding configuration file local to that # directory. # # @example `EnforcedStyle: described_class` (default) # # bad # describe MyClass do # subject { MyClass.do_something } # end # # # good # describe MyClass do # subject { described_class.do_something } # end # @example `OnlyStaticConstants: true` (default) # # good # describe MyClass do # subject { MyClass::CONSTANT } # end # @example `OnlyStaticConstants: false` # # bad # describe MyClass do # subject { MyClass::CONSTANT } # end # @example `EnforcedStyle: explicit` # # bad # describe MyClass do # subject { described_class.do_something } # end # # # good # describe MyClass do # subject { MyClass.do_something } # end # @example `SkipBlocks: true` # # spec/controllers/.rubocop.yml # # RSpec/DescribedClass: # # SkipBlocks: true # # # acceptable # describe MyConcern do # controller(ApplicationController) do # include MyConcern # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#71 class RuboCop::Cop::RSpec::DescribedClass < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle include ::RuboCop::Cop::RSpec::Namespace extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#80 def common_instance_exec_closure?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#97 def contains_described_class?(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#92 def described_constant(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#100 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#85 def rspec_block?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#89 def scope_changing_syntax?(param0 = T.unsafe(nil)); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#136 def allowed?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#117 def autocorrect(corrector, match); end # @example # # nil represents base constant # collapse_namespace([], [:C]) # => [:C] # collapse_namespace([:A, :B], [:C]) # => [:A, :B, :C] # collapse_namespace([:A, :B], [:B, :C]) # => [:A, :B, :C] # collapse_namespace([:A, :B], [nil, :C]) # => [nil, :C] # collapse_namespace([:A, :B], [nil, :B, :C]) # => [nil, :B, :C] # @param namespace [Array] # @param const [Array] # @return [Array] # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#200 def collapse_namespace(namespace, const); end # @example # const_name(s(:const, nil, :C)) # => [:C] # const_name(s(:const, s(:const, nil, :M), :C)) # => [:M, :C] # const_name(s(:const, s(:cbase), :C)) # => [nil, :C] # @param node [RuboCop::AST::Node] # @return [Array] # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#217 def const_name(node); end # @yield [node] # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#127 def find_usage(node, &block); end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#185 def full_const_name(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#140 def message(offense); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#163 def offensive?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#171 def offensive_described_class?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#159 def only_static_constants?; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#149 def scope_change?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#155 def skippable_block?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#76 RuboCop::Cop::RSpec::DescribedClass::DESCRIBED_CLASS = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#77 RuboCop::Cop::RSpec::DescribedClass::MSG = T.let(T.unsafe(nil), String) # Avoid opening modules and defining specs within them. # # @example # # bad # module MyModule # RSpec.describe MyClass do # # ... # end # end # # # good # RSpec.describe MyModule::MyClass do # # ... # end # @see https://github.com/rubocop/rubocop-rspec/issues/735 # # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class_module_wrapping.rb#22 class RuboCop::Cop::RSpec::DescribedClassModuleWrapping < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class_module_wrapping.rb#26 def include_rspec_blocks?(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class_module_wrapping.rb#30 def on_module(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/described_class_module_wrapping.rb#23 RuboCop::Cop::RSpec::DescribedClassModuleWrapping::MSG = T.let(T.unsafe(nil), String) # Enforces custom RSpec dialects. # # A dialect can be based on the following RSpec methods: # # - describe, context, feature, example_group # - xdescribe, xcontext, xfeature # - fdescribe, fcontext, ffeature # - shared_examples, shared_examples_for, shared_context # - it, specify, example, scenario, its # - fit, fspecify, fexample, fscenario, focus # - xit, xspecify, xexample, xscenario, skip # - pending # - prepend_before, before, append_before, # - around # - prepend_after, after, append_after # - let, let! # - subject, subject! # - expect, is_expected, expect_any_instance_of # # By default all of the RSpec methods and aliases are allowed. By setting # a config like: # # RSpec/Dialect: # PreferredMethods: # context: describe # # You can expect the following behavior: # # @example # # bad # context 'display name presence' do # # ... # end # # # good # describe 'display name presence' do # # ... # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/dialect.rb#45 class RuboCop::Cop::RSpec::Dialect < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::MethodPreference extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/dialect.rb#54 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/dialect.rb#52 def rspec_method?(param0 = T.unsafe(nil)); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/dialect.rb#49 RuboCop::Cop::RSpec::Dialect::MSG = T.let(T.unsafe(nil), String) # Avoid duplicated metadata. # # @example # # bad # describe 'Something', :a, :a # # # good # describe 'Something', :a # # source://rubocop-rspec//lib/rubocop/cop/rspec/duplicated_metadata.rb#14 class RuboCop::Cop::RSpec::DuplicatedMetadata < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::Metadata include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/duplicated_metadata.rb#22 def on_metadata(symbols, _hash); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/duplicated_metadata.rb#38 def autocorrect(corrector, node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/duplicated_metadata.rb#50 def duplicated?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/duplicated_metadata.rb#30 def on_metadata_symbol(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/duplicated_metadata.rb#20 RuboCop::Cop::RSpec::DuplicatedMetadata::MSG = T.let(T.unsafe(nil), String) # Checks if an example group does not include any tests. # # @example usage # # bad # describe Bacon do # let(:bacon) { Bacon.new(chunkiness) } # let(:chunkiness) { false } # # context 'extra chunky' do # flagged by rubocop # let(:chunkiness) { true } # end # # it 'is chunky' do # expect(bacon.chunky?).to be_truthy # end # end # # # good # describe Bacon do # let(:bacon) { Bacon.new(chunkiness) } # let(:chunkiness) { false } # # it 'is chunky' do # expect(bacon.chunky?).to be_truthy # end # end # # # good # describe Bacon do # pending 'will add tests later' # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#38 class RuboCop::Cop::RSpec::EmptyExampleGroup < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # Match example group blocks and yield their body # # @example source that matches # describe 'example group' do # it { is_expected.to be } # end # @param node [RuboCop::AST::Node] # @yield [RuboCop::AST::Node] example group body # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#55 def example_group_body(param0 = T.unsafe(nil)); end # Match examples, example groups and includes # # @example source that matches # it { is_expected.to fly } # describe('non-empty example groups too') { } # it_behaves_like 'an animal' # it_behaves_like('a cat') { let(:food) { 'milk' } } # it_has_root_access # skip # it 'will be implemented later' # @param node [RuboCop::AST::Node] # @return [Array] matching nodes # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#73 def example_or_group_or_include?(param0 = T.unsafe(nil)); end # Matches examples defined in scopes where they could run # # @example source that matches # it { expect(myself).to be_run } # describe { it { i_run_as_well } } # @example source that does not match # before { it { whatever here won't run anyway } } # @param node [RuboCop::AST::Node] # @return [Array] matching nodes # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#130 def examples?(param0 = T.unsafe(nil)); end # Match examples or examples inside blocks # # @example source that matches # it { expect(drink).to be_cold } # context('when winter') { it { expect(drink).to be_hot } } # (1..5).each { |divisor| it { is_expected.to divide_by(divisor) } } # @param node [RuboCop::AST::Node] # @return [Array] matching nodes # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#111 def examples_directly_or_in_block?(param0 = T.unsafe(nil)); end # Match examples defined inside a block which is not a hook # # @example source that matches # %w(r g b).each do |color| # it { is_expected.to have_color(color) } # end # @example source that does not match # before do # it { is_expected.to fall_into_oblivion } # end # @param node [RuboCop::AST::Node] # @return [Array] matching nodes # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#97 def examples_inside_block?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#138 def on_block(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#164 def conditionals_with_examples?(body); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#172 def examples_in_branches?(condition_node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#153 def offensive?(body); end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#178 def removed_range(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#43 RuboCop::Cop::RSpec::EmptyExampleGroup::MSG = T.let(T.unsafe(nil), String) # Checks for empty before and after hooks. # # @example # # bad # before {} # after do; end # before(:all) do # end # after(:all) { } # # # good # before { create_users } # after do # cleanup_users # end # before(:all) do # create_feed # end # after(:all) { cleanup_feed } # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_hook.rb#26 class RuboCop::Cop::RSpec::EmptyHook < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_hook.rb#33 def empty_hook?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_hook.rb#37 def on_block(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_hook.rb#30 RuboCop::Cop::RSpec::EmptyHook::MSG = T.let(T.unsafe(nil), String) # Checks if there is an empty line after example blocks. # # @example # # bad # RSpec.describe Foo do # it 'does this' do # end # it 'does that' do # end # end # # # good # RSpec.describe Foo do # it 'does this' do # end # # it 'does that' do # end # end # # # fair - it's ok to have non-separated one-liners # RSpec.describe Foo do # it { one } # it { two } # end # @example with AllowConsecutiveOneLiners configuration # # rubocop.yml # # RSpec/EmptyLineAfterExample: # # AllowConsecutiveOneLiners: false # # # bad # RSpec.describe Foo do # it { one } # it { two } # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_example.rb#43 class RuboCop::Cop::RSpec::EmptyLineAfterExample < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::FinalEndLocation include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::RSpec::EmptyLineSeparation extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_example.rb#49 def on_block(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_example.rb#64 def allow_consecutive_one_liners?; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_example.rb#60 def allowed_one_liner?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_example.rb#68 def consecutive_one_liner?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_example.rb#72 def next_one_line_example?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_example.rb#47 RuboCop::Cop::RSpec::EmptyLineAfterExample::MSG = T.let(T.unsafe(nil), String) # Checks if there is an empty line after example group blocks. # # @example # # bad # RSpec.describe Foo do # describe '#bar' do # end # describe '#baz' do # end # end # # # good # RSpec.describe Foo do # describe '#bar' do # end # # describe '#baz' do # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_example_group.rb#26 class RuboCop::Cop::RSpec::EmptyLineAfterExampleGroup < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::FinalEndLocation include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::RSpec::EmptyLineSeparation extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_example_group.rb#32 def on_block(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_example_group.rb#30 RuboCop::Cop::RSpec::EmptyLineAfterExampleGroup::MSG = T.let(T.unsafe(nil), String) # Checks if there is an empty line after the last let block. # # @example # # bad # let(:foo) { bar } # let(:something) { other } # it { does_something } # # # good # let(:foo) { bar } # let(:something) { other } # # it { does_something } # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_final_let.rb#20 class RuboCop::Cop::RSpec::EmptyLineAfterFinalLet < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::FinalEndLocation include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::RSpec::EmptyLineSeparation extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_final_let.rb#26 def on_block(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_final_let.rb#24 RuboCop::Cop::RSpec::EmptyLineAfterFinalLet::MSG = T.let(T.unsafe(nil), String) # Checks if there is an empty line after hook blocks. # # `AllowConsecutiveOneLiners` configures whether adjacent # one-line definitions are considered an offense. # # @example # # bad # before { do_something } # it { does_something } # # # bad # after { do_something } # it { does_something } # # # bad # around { |test| test.run } # it { does_something } # # # good # after { do_something } # # it { does_something } # # # fair - it's ok to have non-separated one-liners hooks # around { |test| test.run } # after { do_something } # # it { does_something } # @example with AllowConsecutiveOneLiners configuration # # rubocop.yml # # RSpec/EmptyLineAfterHook: # # AllowConsecutiveOneLiners: false # # # bad # around { |test| test.run } # after { do_something } # # it { does_something } # # # good # around { |test| test.run } # # after { do_something } # # it { does_something } # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_hook.rb#53 class RuboCop::Cop::RSpec::EmptyLineAfterHook < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle include ::RuboCop::Cop::RSpec::FinalEndLocation include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::RSpec::EmptyLineSeparation extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_hook.rb#60 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_hook.rb#60 def on_numblock(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_hook.rb#74 def chained_single_line_hooks?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_hook.rb#58 RuboCop::Cop::RSpec::EmptyLineAfterHook::MSG = T.let(T.unsafe(nil), String) # Checks if there is an empty line after subject block. # # @example # # bad # subject(:obj) { described_class } # let(:foo) { bar } # # # good # subject(:obj) { described_class } # # let(:foo) { bar } # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_subject.rb#18 class RuboCop::Cop::RSpec::EmptyLineAfterSubject < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::FinalEndLocation include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::RSpec::EmptyLineSeparation include ::RuboCop::Cop::RSpec::InsideExampleGroup extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_subject.rb#25 def on_block(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_line_after_subject.rb#23 RuboCop::Cop::RSpec::EmptyLineAfterSubject::MSG = T.let(T.unsafe(nil), String) # Helps determine the offending location if there is not an empty line # following the node. Allows comments to follow directly after # in the following cases. # - followed by empty line(s) # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/empty_line_separation.rb#11 module RuboCop::Cop::RSpec::EmptyLineSeparation include ::RuboCop::Cop::RSpec::FinalEndLocation include ::RuboCop::Cop::RangeHelp # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/empty_line_separation.rb#51 def last_child?(node); end # @yield [offending_loc(enable_directive_line || final_end_line)] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/empty_line_separation.rb#26 def missing_separating_line(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/empty_line_separation.rb#15 def missing_separating_line_offense(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/empty_line_separation.rb#41 def offending_loc(last_line); end end # Avoid empty metadata hash. # # @example EnforcedStyle: symbol (default) # # bad # describe 'Something', {} # # # good # describe 'Something' # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_metadata.rb#14 class RuboCop::Cop::RSpec::EmptyMetadata < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::Metadata include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_metadata.rb#22 def on_metadata(_symbols, hash); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_metadata.rb#32 def remove_empty_metadata(corrector, node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_metadata.rb#20 RuboCop::Cop::RSpec::EmptyMetadata::MSG = T.let(T.unsafe(nil), String) # Check that the `output` matcher is not called with an empty string. # # @example # # bad # expect { foo }.to output('').to_stdout # expect { bar }.not_to output('').to_stderr # # # good # expect { foo }.not_to output.to_stdout # expect { bar }.to output.to_stderr # # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_output.rb#17 class RuboCop::Cop::RSpec::EmptyOutput < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_output.rb#24 def matching_empty_output(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_output.rb#34 def on_send(send_node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_output.rb#20 RuboCop::Cop::RSpec::EmptyOutput::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/empty_output.rb#21 RuboCop::Cop::RSpec::EmptyOutput::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Use `eq` instead of `be ==` to compare objects. # # @example # # bad # expect(foo).to be == 42 # # # good # expect(foo).to eq 42 # # source://rubocop-rspec//lib/rubocop/cop/rspec/eq.rb#15 class RuboCop::Cop::RSpec::Eq < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/eq.rb#23 def be_equals(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/eq.rb#27 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/eq.rb#38 def offense_range(matcher); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/eq.rb#19 RuboCop::Cop::RSpec::Eq::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/eq.rb#20 RuboCop::Cop::RSpec::Eq::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for long examples. # # A long example is usually more difficult to understand. Consider # extracting out some behavior, e.g. with a `let` block, or a helper # method. # # You can set constructs you want to fold with `CountAsOne`. # Available are: 'array', 'hash', 'heredoc', and 'method_call'. # Each construct will be counted as one line regardless of # its actual size. # # @example # # bad # it do # service = described_class.new # more_setup # more_setup # result = service.call # expect(result).to be(true) # end # # # good # it do # service = described_class.new # result = service.call # expect(result).to be(true) # end # @example CountAsOne: ['array', 'heredoc', 'method_call'] # # it do # array = [ # +1 # 1, # 2 # ] # # hash = { # +3 # key: 'value' # } # # msg = <<~HEREDOC # +1 # Heredoc # content. # HEREDOC # # foo( # +1 # 1, # 2 # ) # end # 6 points # # source://rubocop-rspec//lib/rubocop/cop/rspec/example_length.rb#57 class RuboCop::Cop::RSpec::ExampleLength < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::CodeLength # source://rubocop-rspec//lib/rubocop/cop/rspec/example_length.rb#62 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/example_length.rb#70 def cop_label; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_length.rb#60 RuboCop::Cop::RSpec::ExampleLength::LABEL = T.let(T.unsafe(nil), String) # Checks for examples without a description. # # RSpec allows for auto-generated example descriptions when there is no # description provided or the description is an empty one. # It is acceptable to use `specify` without a description # # This cop removes empty descriptions. # It also defines whether auto-generated description is allowed, based # on the configured style. # # This cop can be configured using the `EnforcedStyle` option # # @example # # always good # specify do # result = service.call # expect(result).to be(true) # end # @example `EnforcedStyle: always_allow` (default) # # bad # it('') { is_expected.to be_good } # specify '' do # result = service.call # expect(result).to be(true) # end # # # good # it { is_expected.to be_good } # specify do # result = service.call # expect(result).to be(true) # end # @example `EnforcedStyle: single_line_only` # # bad # it('') { is_expected.to be_good } # it do # result = service.call # expect(result).to be(true) # end # # # good # it { is_expected.to be_good } # @example `EnforcedStyle: disallow` # # bad # it { is_expected.to be_good } # it do # result = service.call # expect(result).to be(true) # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/example_without_description.rb#59 class RuboCop::Cop::RSpec::ExampleWithoutDescription < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle # source://rubocop-rspec//lib/rubocop/cop/rspec/example_without_description.rb#67 def example_description(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_without_description.rb#69 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/example_without_description.rb#83 def check_example_without_description(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/example_without_description.rb#91 def disallow_empty_description?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_without_description.rb#64 RuboCop::Cop::RSpec::ExampleWithoutDescription::MSG_ADD_DESCRIPTION = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/example_without_description.rb#62 RuboCop::Cop::RSpec::ExampleWithoutDescription::MSG_DEFAULT_ARGUMENT = T.let(T.unsafe(nil), String) # Checks for common mistakes in example descriptions. # # This cop will correct docstrings that begin with 'should' and 'it'. # This cop will also look for insufficient examples and call them out. # # The autocorrect is experimental - use with care! It can be configured # with CustomTransform (e.g. have => has) and IgnoredWords (e.g. only). # # Use the DisallowedExamples setting to prevent unclear or insufficient # descriptions. Please note that this config will not be treated as # case sensitive. # # @example # # bad # it 'should find nothing' do # end # # it 'will find nothing' do # end # # # good # it 'finds nothing' do # end # @example # # bad # it 'it does things' do # end # # # good # it 'does things' do # end # @example `DisallowedExamples: ['works']` (default) # # bad # it 'works' do # end # # # good # it 'marks the task as done' do # end # @see http://betterspecs.org/#should # # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#49 class RuboCop::Cop::RSpec::ExampleWording < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#63 def it_description(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#71 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#89 def add_wording_offense(node, message); end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#136 def custom_transform; end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#99 def docstring(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#140 def ignored_words; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#144 def insufficient_docstring?(description_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#148 def insufficient_examples; end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#153 def preprocess(message); end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#109 def replacement_text(node); end # Recursive processing is required to process nested dstr nodes # that is the case for \-separated multiline strings with interpolation. # # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#125 def text(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#60 RuboCop::Cop::RSpec::ExampleWording::IT_PREFIX = T.let(T.unsafe(nil), Regexp) # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#55 RuboCop::Cop::RSpec::ExampleWording::MSG_INSUFFICIENT_DESCRIPTION = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#54 RuboCop::Cop::RSpec::ExampleWording::MSG_IT = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#52 RuboCop::Cop::RSpec::ExampleWording::MSG_SHOULD = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#53 RuboCop::Cop::RSpec::ExampleWording::MSG_WILL = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#58 RuboCop::Cop::RSpec::ExampleWording::SHOULD_PREFIX = T.let(T.unsafe(nil), Regexp) # source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#59 RuboCop::Cop::RSpec::ExampleWording::WILL_PREFIX = T.let(T.unsafe(nil), Regexp) # Checks for excessive whitespace in example descriptions. # # @example # # bad # it ' has excessive spacing ' do # end # # # good # it 'has excessive spacing' do # end # @example # # bad # context ' when a condition is met ' do # end # # # good # context 'when a condition is met' do # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/excessive_docstring_spacing.rb#26 class RuboCop::Cop::RSpec::ExcessiveDocstringSpacing < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/excessive_docstring_spacing.rb#32 def example_description(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/excessive_docstring_spacing.rb#39 def on_send(node); end private # @param node [RuboCop::AST::Node] # @param text [String] # # source://rubocop-rspec//lib/rubocop/cop/rspec/excessive_docstring_spacing.rb#76 def add_whitespace_offense(node, text); end # source://rubocop-rspec//lib/rubocop/cop/rspec/excessive_docstring_spacing.rb#85 def docstring(node); end # @param text [String] # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/excessive_docstring_spacing.rb#54 def excessive_whitespace?(text); end # @param text [String] # # source://rubocop-rspec//lib/rubocop/cop/rspec/excessive_docstring_spacing.rb#68 def strip_excessive_whitespace(text); end # Recursive processing is required to process nested dstr nodes # that is the case for \-separated multiline strings with interpolation. # # source://rubocop-rspec//lib/rubocop/cop/rspec/excessive_docstring_spacing.rb#97 def text(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/excessive_docstring_spacing.rb#29 RuboCop::Cop::RSpec::ExcessiveDocstringSpacing::MSG = T.let(T.unsafe(nil), String) # Checks for `expect(...)` calls containing literal values. # # Autocorrection is performed when the expected is not a literal. # # @example # # bad # expect(5).to eq(price) # expect(/foo/).to eq(pattern) # expect("John").to eq(name) # # # good # expect(price).to eq(5) # expect(pattern).to eq(/foo/) # expect(name).to eq("John") # # # bad (not supported autocorrection) # expect(false).to eq(true) # # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#24 class RuboCop::Cop::RSpec::ExpectActual < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#57 def expect_literal(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#68 def on_send(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#98 def complex_literal?(node); end # This is not implemented using a NodePattern because it seems # to not be able to match against an explicit (nil) sexp # # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#90 def literal?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#94 def simple_literal?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#44 RuboCop::Cop::RSpec::ExpectActual::COMPLEX_LITERALS = T.let(T.unsafe(nil), Array) # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#54 RuboCop::Cop::RSpec::ExpectActual::CORRECTABLE_MATCHERS = T.let(T.unsafe(nil), Array) # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#27 RuboCop::Cop::RSpec::ExpectActual::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#29 RuboCop::Cop::RSpec::ExpectActual::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#31 RuboCop::Cop::RSpec::ExpectActual::SIMPLE_LITERALS = T.let(T.unsafe(nil), Array) # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_actual.rb#53 RuboCop::Cop::RSpec::ExpectActual::SKIPPED_MATCHERS = T.let(T.unsafe(nil), Array) # Checks for consistent style of change matcher. # # Enforces either passing object and attribute as arguments to the matcher # or passing a block that reads the attribute value. # # This cop can be configured using the `EnforcedStyle` option. # # @example `EnforcedStyle: method_call` (default) # # bad # expect { run }.to change { Foo.bar } # expect { run }.to change { foo.baz } # # # good # expect { run }.to change(Foo, :bar) # expect { run }.to change(foo, :baz) # # also good when there are arguments or chained method calls # expect { run }.to change { Foo.bar(:count) } # expect { run }.to change { user.reload.name } # @example `EnforcedStyle: block` # # bad # expect { run }.to change(Foo, :bar) # # # good # expect { run }.to change { Foo.bar } # # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#32 class RuboCop::Cop::RSpec::ExpectChange < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#41 def expect_change_with_arguments(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#46 def expect_change_with_block(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#72 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#60 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#36 RuboCop::Cop::RSpec::ExpectChange::MSG_BLOCK = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#37 RuboCop::Cop::RSpec::ExpectChange::MSG_CALL = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#38 RuboCop::Cop::RSpec::ExpectChange::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Do not use `expect` in hooks such as `before`. # # @example # # bad # before do # expect(something).to eq 'foo' # end # # # bad # after do # expect_any_instance_of(Something).to receive(:foo) # end # # # good # it do # expect(something).to eq 'foo' # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_hook.rb#24 class RuboCop::Cop::RSpec::ExpectInHook < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_hook.rb#28 def expectation(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_hook.rb#30 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_hook.rb#30 def on_numblock(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_hook.rb#44 def message(expect, hook); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_hook.rb#25 RuboCop::Cop::RSpec::ExpectInHook::MSG = T.let(T.unsafe(nil), String) # Do not use `expect` in let. # # @example # # bad # let(:foo) do # expect(something).to eq 'foo' # end # # # good # it do # expect(something).to eq 'foo' # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_let.rb#19 class RuboCop::Cop::RSpec::ExpectInLet < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_let.rb#23 def expectation(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_let.rb#25 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_let.rb#25 def on_numblock(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_let.rb#38 def message(expect); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_let.rb#20 RuboCop::Cop::RSpec::ExpectInLet::MSG = T.let(T.unsafe(nil), String) # Checks for opportunities to use `expect { ... }.to output`. # # @example # # bad # $stdout = StringIO.new # my_app.print_report # $stdout = STDOUT # expect($stdout.string).to eq('Hello World') # # # good # expect { my_app.print_report }.to output('Hello World').to_stdout # # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_output.rb#18 class RuboCop::Cop::RSpec::ExpectOutput < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_output.rb#22 def on_gvasgn(node); end private # Detect if we are inside the scope of a single example # # We want to encourage using `expect { ... }.to output` so # we only care about situations where you would replace with # an expectation. Therefore, assignments to stderr or stdout # within a `before(:all)` or otherwise outside of an example # don't matter. # # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_output.rb#40 def inside_example_scope?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/expect_output.rb#19 RuboCop::Cop::RSpec::ExpectOutput::MSG = T.let(T.unsafe(nil), String) # A helper for `explicit` style # # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#121 module RuboCop::Cop::RSpec::ExplicitHelper include ::RuboCop::RSpec::Language extend ::RuboCop::AST::NodePattern::Macros # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#182 def predicate_matcher?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#191 def predicate_matcher_block?(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#135 def allowed_explicit_matchers; end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#139 def check_explicit(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#215 def corrector_explicit(corrector, to_node, actual, matcher, block_child); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#175 def heredoc_argument?(matcher); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#209 def message_explicit(matcher); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#222 def move_predicate(corrector, actual, matcher, block_child); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#200 def predicate_matcher_name?(name); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#162 def replaceable_matcher?(matcher); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#251 def replacement_matcher(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#233 def to_predicate_method(matcher); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#171 def uncorrectable_matcher?(node, matcher); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#127 RuboCop::Cop::RSpec::ExplicitHelper::BUILT_IN_MATCHERS = T.let(T.unsafe(nil), Array) # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#125 RuboCop::Cop::RSpec::ExplicitHelper::MSG_EXPLICIT = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/factory_bot/attribute_defined_statically.rb#6 module RuboCop::Cop::RSpec::FactoryBot; end # Always declare attribute values as blocks. # # @example # # bad # kind [:active, :rejected].sample # # # good # kind { [:active, :rejected].sample } # # # bad # closed_at 1.day.from_now # # # good # closed_at { 1.day.from_now } # # # bad # count 1 # # # good # count { 1 } # # source://rubocop-rspec//lib/rubocop/cop/rspec/factory_bot/attribute_defined_statically.rb#30 RuboCop::Cop::RSpec::FactoryBot::AttributeDefinedStatically = RuboCop::Cop::FactoryBot::AttributeDefinedStatically # Use a consistent style for parentheses in factory bot calls. # # @example # # # bad # create :user # build(:user) # create(:login) # create :login # @example `EnforcedStyle: require_parentheses` (default) # # # good # create(:user) # create(:user) # create(:login) # build(:login) # @example `EnforcedStyle: omit_parentheses` # # # good # create :user # build :user # create :login # create :login # # # also good # # when method name and first argument are not on same line # create( # :user # ) # build( # :user, # name: 'foo' # ) # # source://rubocop-rspec//lib/rubocop/cop/rspec/factory_bot/consistent_parentheses_style.rb#45 RuboCop::Cop::RSpec::FactoryBot::ConsistentParenthesesStyle = RuboCop::Cop::FactoryBot::ConsistentParenthesesStyle # Checks for create_list usage. # # This cop can be configured using the `EnforcedStyle` option # # @example `EnforcedStyle: create_list` (default) # # bad # 3.times { create :user } # # # good # create_list :user, 3 # # # bad # 3.times { create :user, age: 18 } # # # good - index is used to alter the created models attributes # 3.times { |n| create :user, age: n } # # # good - contains a method call, may return different values # 3.times { create :user, age: rand } # @example `EnforcedStyle: n_times` # # bad # create_list :user, 3 # # # good # 3.times { create :user } # # source://rubocop-rspec//lib/rubocop/cop/rspec/factory_bot/create_list.rb#36 RuboCop::Cop::RSpec::FactoryBot::CreateList = RuboCop::Cop::FactoryBot::CreateList # Use string value when setting the class attribute explicitly. # # This cop would promote faster tests by lazy-loading of # application files. Also, this could help you suppress potential # bugs in combination with external libraries by avoiding a preload # of application files from the factory files. # # @example # # bad # factory :foo, class: Foo do # end # # # good # factory :foo, class: 'Foo' do # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/factory_bot/factory_class_name.rb#25 RuboCop::Cop::RSpec::FactoryBot::FactoryClassName = RuboCop::Cop::FactoryBot::FactoryClassName # Checks for name style for argument of FactoryBot::Syntax::Methods. # # @example EnforcedStyle: symbol (default) # # bad # create('user') # build "user", username: "NAME" # # # good # create(:user) # build :user, username: "NAME" # @example EnforcedStyle: string # # bad # create(:user) # build :user, username: "NAME" # # # good # create('user') # build "user", username: "NAME" # # source://rubocop-rspec//lib/rubocop/cop/rspec/factory_bot/factory_name_style.rb#29 RuboCop::Cop::RSpec::FactoryBot::FactoryNameStyle = RuboCop::Cop::FactoryBot::FactoryNameStyle # Use shorthands from `FactoryBot::Syntax::Methods` in your specs. # # @example # # bad # FactoryBot.create(:bar) # FactoryBot.build(:bar) # FactoryBot.attributes_for(:bar) # # # good # create(:bar) # build(:bar) # attributes_for(:bar) # # source://rubocop-rspec//lib/rubocop/cop/rspec/factory_bot/syntax_methods.rb#51 RuboCop::Cop::RSpec::FactoryBot::SyntaxMethods = RuboCop::Cop::FactoryBot::SyntaxMethods # Help methods for file. # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/file_help.rb#7 module RuboCop::Cop::RSpec::FileHelp # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/file_help.rb#8 def expanded_file_path; end end # Checks that spec file paths are consistent and well-formed. # # This cop is deprecated. # We plan to remove it in the next major version update to 3.0. # The migration targets are `RSpec/SpecFilePathSuffix` # and `RSpec/SpecFilePathFormat`. # If you are using this cop, please plan for migration. # # By default, this checks that spec file paths are consistent with the # test subject and enforces that it reflects the described # class/module and its optionally called out method. # # With the configuration option `IgnoreMethods` the called out method will # be ignored when determining the enforced path. # # With the configuration option `CustomTransform` modules or classes can # be specified that should not as usual be transformed from CamelCase to # snake_case (e.g. 'RuboCop' => 'rubocop' ). # # With the configuration option `SpecSuffixOnly` test files will only # be checked to ensure they end in '_spec.rb'. This option disables # checking for consistency in the test subject or test methods. # # @example # # bad # whatever_spec.rb # describe MyClass # # # bad # my_class_spec.rb # describe MyClass, '#method' # # # good # my_class_spec.rb # describe MyClass # # # good # my_class_method_spec.rb # describe MyClass, '#method' # # # good # my_class/method_spec.rb # describe MyClass, '#method' # @example when configuration is `IgnoreMethods: true` # # bad # whatever_spec.rb # describe MyClass # # # good # my_class_spec.rb # describe MyClass # # # good # my_class_spec.rb # describe MyClass, '#method' # @example when configuration is `SpecSuffixOnly: true` # # good # whatever_spec.rb # describe MyClass # # # good # my_class_spec.rb # describe MyClass # # # good # my_class_spec.rb # describe MyClass, '#method' # # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#65 class RuboCop::Cop::RSpec::FilePath < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::TopLevelGroup include ::RuboCop::Cop::RSpec::Namespace # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#72 def example_group(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#81 def on_top_level_example_group(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#79 def routing_metadata?(param0); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#142 def camel_to_snake_case(string); end # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#149 def custom_transform; end # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#91 def ensure_correct_file_path(send_node, example_group, arguments); end # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#173 def expanded_file_path; end # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#132 def expected_path(constant); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#157 def filename_ends_with?(pattern); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#153 def ignore_methods?; end # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#125 def name_pattern(method_name); end # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#107 def pattern_for(example_group, arguments); end # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#121 def pattern_for_spec_suffix_only; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#161 def relevant_rubocop_rspec_file?(_file); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#103 def routing_spec?(args); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#169 def routing_spec_path?; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#165 def spec_suffix_only?; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/file_path.rb#69 RuboCop::Cop::RSpec::FilePath::MSG = T.let(T.unsafe(nil), String) # Helps find the true end location of nodes which might contain heredocs. # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/final_end_location.rb#7 module RuboCop::Cop::RSpec::FinalEndLocation # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/final_end_location.rb#8 def final_end_location(start_node); end end # Checks if examples are focused. # # This cop does not support autocorrection in some cases. # # @example # # bad # describe MyClass, focus: true do # end # # describe MyClass, :focus do # end # # fdescribe MyClass do # end # # # good # describe MyClass do # end # # # bad # fdescribe 'test' do; end # # # good # describe 'test' do; end # # # bad # fdescribe 'test' do; end # # # good # describe 'test' do; end # # # bad # shared_examples 'test', focus: true do; end # # # good # shared_examples 'test' do; end # # # bad # shared_context 'test', focus: true do; end # # # good # shared_context 'test' do; end # # # bad (does not support autocorrection) # focus 'test' do; end # # source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#52 class RuboCop::Cop::RSpec::Focus < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#59 def focusable_selector?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#77 def focused_block?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#71 def metadata(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#81 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#110 def correct_send(corrector, focus); end # @yield [node] # # source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#97 def focus_metadata(node, &block); end # source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#103 def with_surrounding(focus); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#56 RuboCop::Cop::RSpec::Focus::MSG = T.let(T.unsafe(nil), String) # Checks the arguments passed to `before`, `around`, and `after`. # # This cop checks for consistent style when specifying RSpec # hooks which run for each example. There are three supported # styles: "implicit", "each", and "example." All styles have # the same behavior. # # @example `EnforcedStyle: implicit` (default) # # bad # before(:each) do # # ... # end # # # bad # before(:example) do # # ... # end # # # good # before do # # ... # end # @example `EnforcedStyle: each` # # bad # before(:example) do # # ... # end # # # bad # before do # # ... # end # # # good # before(:each) do # # ... # end # @example `EnforcedStyle: example` # # bad # before(:each) do # # ... # end # # # bad # before do # # ... # end # # # good # before(:example) do # # ... # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#61 class RuboCop::Cop::RSpec::HookArgument < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#78 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#78 def on_numblock(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#69 def scoped_hook(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#74 def unscoped_hook(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#95 def autocorrect(corrector, _node, method_send); end # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#102 def check_implicit(method_send); end # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#116 def explicit_message(scope); end # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#128 def hook(node, &block); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#124 def implicit_style?; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#66 RuboCop::Cop::RSpec::HookArgument::EXPLICIT_MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/hook_argument.rb#65 RuboCop::Cop::RSpec::HookArgument::IMPLICIT_MSG = T.let(T.unsafe(nil), String) # Checks for before/around/after hooks that come after an example. # # @example # # bad # it 'checks what foo does' do # expect(foo).to be # end # # before { prepare } # after { clean_up } # # # good # before { prepare } # after { clean_up } # # it 'checks what foo does' do # expect(foo).to be # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/hooks_before_examples.rb#25 class RuboCop::Cop::RSpec::HooksBeforeExamples < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/hooks_before_examples.rb#31 def example_or_group?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/hooks_before_examples.rb#41 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/hooks_before_examples.rb#41 def on_numblock(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/hooks_before_examples.rb#73 def autocorrect(corrector, node, first_example); end # source://rubocop-rspec//lib/rubocop/cop/rspec/hooks_before_examples.rb#55 def check_hooks(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/hooks_before_examples.rb#69 def find_first_example(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/hooks_before_examples.rb#51 def multiline_block?(block); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/hooks_before_examples.rb#28 RuboCop::Cop::RSpec::HooksBeforeExamples::MSG = T.let(T.unsafe(nil), String) # Checks for equality assertions with identical expressions on both sides. # # @example # # bad # expect(foo.bar).to eq(foo.bar) # expect(foo.bar).to eql(foo.bar) # # # good # expect(foo.bar).to eq(2) # expect(foo.bar).to eql(2) # # source://rubocop-rspec//lib/rubocop/cop/rspec/identical_equality_assertion.rb#17 class RuboCop::Cop::RSpec::IdenticalEqualityAssertion < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/identical_equality_assertion.rb#23 def equality_check?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/identical_equality_assertion.rb#29 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/identical_equality_assertion.rb#18 RuboCop::Cop::RSpec::IdenticalEqualityAssertion::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/identical_equality_assertion.rb#20 RuboCop::Cop::RSpec::IdenticalEqualityAssertion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Check that implicit block expectation syntax is not used. # # Prefer using explicit block expectations. # # @example # # bad # subject { -> { do_something } } # it { is_expected.to change(something).to(new_value) } # # # good # it 'changes something to a new value' do # expect { do_something }.to change(something).to(new_value) # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_block_expectation.rb#20 class RuboCop::Cop::RSpec::ImplicitBlockExpectation < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_block_expectation.rb#36 def implicit_expect(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_block_expectation.rb#25 def lambda?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_block_expectation.rb#33 def lambda_subject?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_block_expectation.rb#40 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_block_expectation.rb#62 def find_subject(block_node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_block_expectation.rb#58 def multi_statement_example_group?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_block_expectation.rb#49 def nearest_subject(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_block_expectation.rb#21 RuboCop::Cop::RSpec::ImplicitBlockExpectation::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_block_expectation.rb#22 RuboCop::Cop::RSpec::ImplicitBlockExpectation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Check that a consistent implicit expectation style is used. # # This cop can be configured using the `EnforcedStyle` option # and supports the `--auto-gen-config` flag. # # @example `EnforcedStyle: is_expected` (default) # # bad # it { should be_truthy } # # # good # it { is_expected.to be_truthy } # @example `EnforcedStyle: should` # # bad # it { is_expected.to be_truthy } # # # good # it { should be_truthy } # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_expect.rb#25 class RuboCop::Cop::RSpec::ImplicitExpect < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_expect.rb#34 def implicit_expect(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_expect.rb#49 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_expect.rb#78 def is_expected_range(source_map); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_expect.rb#69 def offending_expect(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_expect.rb#86 def offense_message(offending_source); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_expect.rb#94 def replacement_source(offending_source); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_expect.rb#47 RuboCop::Cop::RSpec::ImplicitExpect::ENFORCED_REPLACEMENTS = T.let(T.unsafe(nil), Hash) # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_expect.rb#29 RuboCop::Cop::RSpec::ImplicitExpect::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_expect.rb#31 RuboCop::Cop::RSpec::ImplicitExpect::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for usage of implicit subject (`is_expected` / `should`). # # This cop can be configured using the `EnforcedStyle` option # # @example `EnforcedStyle: single_line_only` (default) # # bad # it do # is_expected.to be_truthy # end # # # good # it { is_expected.to be_truthy } # it do # expect(subject).to be_truthy # end # @example `EnforcedStyle: single_statement_only` # # bad # it do # foo = 1 # is_expected.to be_truthy # end # # # good # it do # foo = 1 # expect(subject).to be_truthy # end # it do # is_expected.to be_truthy # end # @example `EnforcedStyle: disallow` # # bad # it { is_expected.to be_truthy } # # # good # it { expect(subject).to be_truthy } # @example `EnforcedStyle: require_implicit` # # bad # it { expect(subject).to be_truthy } # # # good # it { is_expected.to be_truthy } # # # bad # it do # expect(subject).to be_truthy # end # # # good # it do # is_expected.to be_truthy # end # # # good # it { expect(named_subject).to be_truthy } # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#65 class RuboCop::Cop::RSpec::ImplicitSubject < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#81 def explicit_unnamed_subject?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#86 def implicit_subject?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#90 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#100 def autocorrect(corrector, node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#159 def example_of(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#135 def implicit_subject_in_non_its?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#139 def implicit_subject_in_non_its_and_non_single_line?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#143 def implicit_subject_in_non_its_and_non_single_statement?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#122 def invalid?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#147 def its?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#113 def message(_node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#151 def single_line?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#155 def single_statement?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#69 RuboCop::Cop::RSpec::ImplicitSubject::MSG_REQUIRE_EXPLICIT = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#71 RuboCop::Cop::RSpec::ImplicitSubject::MSG_REQUIRE_IMPLICIT = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#73 RuboCop::Cop::RSpec::ImplicitSubject::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Do not set up test data using indexes (e.g., `item_1`, `item_2`). # # It makes reading the test harder because it's not clear what exactly # is tested by this particular example. # # The configurable options `AllowedIdentifiers` and `AllowedPatterns` # will also read those set in `Naming/VariableNumber`. # # @example `Max: 1 (default)` # # bad # let(:item_1) { create(:item) } # let(:item_2) { create(:item) } # # let(:item1) { create(:item) } # let(:item2) { create(:item) } # # # good # # let(:visible_item) { create(:item, visible: true) } # let(:invisible_item) { create(:item, visible: false) } # @example `Max: 2` # # bad # let(:item_1) { create(:item) } # let(:item_2) { create(:item) } # let(:item_3) { create(:item) } # # # good # let(:item_1) { create(:item) } # let(:item_2) { create(:item) } # @example `AllowedIdentifiers: ['item_1', 'item_2']` # # good # let(:item_1) { create(:item) } # let(:item_2) { create(:item) } # @example `AllowedPatterns: ['item']` # # good # let(:item_1) { create(:item) } # let(:item_2) { create(:item) } # # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#47 class RuboCop::Cop::RSpec::IndexedLet < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::AllowedIdentifiers include ::RuboCop::Cop::AllowedPattern # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#55 def let_name(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#62 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#104 def allowed_identifiers; end # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#98 def cop_config_patterns_values; end # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#78 def filter_indexed_lets(candidates); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#87 def indexed_let?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#94 def let_name_stripped_index(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#76 RuboCop::Cop::RSpec::IndexedLet::INDEX_REGEX = T.let(T.unsafe(nil), Regexp) # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#51 RuboCop::Cop::RSpec::IndexedLet::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#75 RuboCop::Cop::RSpec::IndexedLet::SUFFIX_INDEX_REGEX = T.let(T.unsafe(nil), Regexp) # A helper for `inflected` style # # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#7 module RuboCop::Cop::RSpec::InflectedHelper include ::RuboCop::RSpec::Language extend ::RuboCop::AST::NodePattern::Macros # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#39 def be_bool?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#44 def be_boolthy?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#29 def predicate_in_actual?(param0 = T.unsafe(nil)); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#48 def boolean_matcher?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#16 def check_inflected(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#60 def message_inflected(predicate); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#56 def predicate?(sym); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#85 def remove_predicate(corrector, predicate); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#96 def rewrite_matcher(corrector, predicate, matcher); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#67 def to_predicate_matcher(name); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#107 def true?(to_symbol, matcher); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#11 RuboCop::Cop::RSpec::InflectedHelper::MSG_INFLECTED = T.let(T.unsafe(nil), String) # Helps you identify whether a given node # is within an example group or not. # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/inside_example_group.rb#8 module RuboCop::Cop::RSpec::InsideExampleGroup private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/inside_example_group.rb#19 def example_group_root?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/inside_example_group.rb#23 def example_group_root_with_siblings?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/inside_example_group.rb#11 def inside_example_group?(node); end end # Checks for `instance_double` used with `have_received`. # # @example # # bad # it do # foo = instance_double(Foo).as_null_object # expect(foo).to have_received(:bar) # end # # # good # it do # foo = instance_spy(Foo) # expect(foo).to have_received(:bar) # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_spy.rb#21 class RuboCop::Cop::RSpec::InstanceSpy < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_spy.rb#36 def have_received_usage(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_spy.rb#28 def null_double(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_spy.rb#45 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_spy.rb#61 def autocorrect(corrector, node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_spy.rb#24 RuboCop::Cop::RSpec::InstanceSpy::MSG = T.let(T.unsafe(nil), String) # Checks for instance variable usage in specs. # # This cop can be configured with the option `AssignmentOnly` which # will configure the cop to only register offenses on instance # variable usage if the instance variable is also assigned within # the spec # # @example # # bad # describe MyClass do # before { @foo = [] } # it { expect(@foo).to be_empty } # end # # # good # describe MyClass do # let(:foo) { [] } # it { expect(foo).to be_empty } # end # @example with AssignmentOnly configuration # # rubocop.yml # # RSpec/InstanceVariable: # # AssignmentOnly: true # # # bad # describe MyClass do # before { @foo = [] } # it { expect(@foo).to be_empty } # end # # # allowed # describe MyClass do # it { expect(@foo).to be_empty } # end # # # good # describe MyClass do # let(:foo) { [] } # it { expect(foo).to be_empty } # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_variable.rb#48 class RuboCop::Cop::RSpec::InstanceVariable < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::TopLevelGroup # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_variable.rb#60 def custom_matcher?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_variable.rb#55 def dynamic_class?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_variable.rb#71 def ivar_assigned?(param0, param1); end # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_variable.rb#68 def ivar_usage(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_variable.rb#73 def on_top_level_group(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_variable.rb#90 def assignment_only?; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_variable.rb#84 def valid_usage?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/instance_variable.rb#51 RuboCop::Cop::RSpec::InstanceVariable::MSG = T.let(T.unsafe(nil), String) # Check for `specify` with `is_expected` and one-liner expectations. # # @example # # bad # specify { is_expected.to be_truthy } # # # good # it { is_expected.to be_truthy } # # # good # specify do # # ... # end # specify { expect(sqrt(4)).to eq(2) } # # source://rubocop-rspec//lib/rubocop/cop/rspec/is_expected_specify.rb#21 class RuboCop::Cop::RSpec::IsExpectedSpecify < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/is_expected_specify.rb#29 def offense?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/is_expected_specify.rb#33 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/is_expected_specify.rb#25 RuboCop::Cop::RSpec::IsExpectedSpecify::IS_EXPECTED_METHODS = T.let(T.unsafe(nil), Set) # source://rubocop-rspec//lib/rubocop/cop/rspec/is_expected_specify.rb#26 RuboCop::Cop::RSpec::IsExpectedSpecify::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/is_expected_specify.rb#24 RuboCop::Cop::RSpec::IsExpectedSpecify::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks that only one `it_behaves_like` style is used. # # @example `EnforcedStyle: it_behaves_like` (default) # # bad # it_should_behave_like 'a foo' # # # good # it_behaves_like 'a foo' # @example `EnforcedStyle: it_should_behave_like` # # bad # it_behaves_like 'a foo' # # # good # it_should_behave_like 'a foo' # # source://rubocop-rspec//lib/rubocop/cop/rspec/it_behaves_like.rb#22 class RuboCop::Cop::RSpec::ItBehavesLike < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/it_behaves_like.rb#31 def example_inclusion_offense(param0 = T.unsafe(nil), param1); end # source://rubocop-rspec//lib/rubocop/cop/rspec/it_behaves_like.rb#33 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/it_behaves_like.rb#43 def message(_node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/it_behaves_like.rb#26 RuboCop::Cop::RSpec::ItBehavesLike::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/it_behaves_like.rb#28 RuboCop::Cop::RSpec::ItBehavesLike::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Check that `all` matcher is used instead of iterating over an array. # # @example # # bad # it 'validates users' do # [user1, user2, user3].each { |user| expect(user).to be_valid } # end # # # good # it 'validates users' do # expect([user1, user2, user3]).to all(be_valid) # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/iterated_expectation.rb#19 class RuboCop::Cop::RSpec::IteratedExpectation < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/iterated_expectation.rb#24 def each?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/iterated_expectation.rb#33 def each_numblock?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/iterated_expectation.rb#40 def expectation?(param0 = T.unsafe(nil), param1); end # source://rubocop-rspec//lib/rubocop/cop/rspec/iterated_expectation.rb#44 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/iterated_expectation.rb#52 def on_numblock(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/iterated_expectation.rb#66 def only_expectations?(body, arg); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/iterated_expectation.rb#62 def single_expectation?(body, arg); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/iterated_expectation.rb#20 RuboCop::Cop::RSpec::IteratedExpectation::MSG = T.let(T.unsafe(nil), String) # Enforce that subject is the first definition in the test. # # @example # # bad # let(:params) { blah } # subject { described_class.new(params) } # # before { do_something } # subject { described_class.new(params) } # # it { expect_something } # subject { described_class.new(params) } # it { expect_something_else } # # # good # subject { described_class.new(params) } # let(:params) { blah } # # # good # subject { described_class.new(params) } # before { do_something } # # # good # subject { described_class.new(params) } # it { expect_something } # it { expect_something_else } # # source://rubocop-rspec//lib/rubocop/cop/rspec/leading_subject.rb#34 class RuboCop::Cop::RSpec::LeadingSubject < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::InsideExampleGroup extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/leading_subject.rb#40 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/leading_subject.rb#70 def autocorrect(corrector, node, sibling); end # source://rubocop-rspec//lib/rubocop/cop/rspec/leading_subject.rb#49 def check_previous_nodes(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/leading_subject.rb#76 def offending?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/leading_subject.rb#58 def offending_node(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/leading_subject.rb#66 def parent(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/leading_subject.rb#38 RuboCop::Cop::RSpec::LeadingSubject::MSG = T.let(T.unsafe(nil), String) # Checks that no class, module, or constant is declared. # # Constants, including classes and modules, when declared in a block # scope, are defined in global namespace, and leak between examples. # # If several examples may define a `DummyClass`, instead of being a # blank slate class as it will be in the first example, subsequent # examples will be reopening it and modifying its behavior in # unpredictable ways. # Even worse when a class that exists in the codebase is reopened. # # Anonymous classes are fine, since they don't result in global # namespace name clashes. # # @example Constants leak between examples # # bad # describe SomeClass do # OtherClass = Struct.new # CONSTANT_HERE = 'I leak into global namespace' # end # # # good # describe SomeClass do # before do # stub_const('OtherClass', Struct.new) # stub_const('CONSTANT_HERE', 'I only exist during this example') # end # end # @example # # bad # describe SomeClass do # class FooClass < described_class # def double_that # some_base_method * 2 # end # end # # it { expect(FooClass.new.double_that).to eq(4) } # end # # # good - anonymous class, no constant needs to be defined # describe SomeClass do # let(:foo_class) do # Class.new(described_class) do # def double_that # some_base_method * 2 # end # end # end # # it { expect(foo_class.new.double_that).to eq(4) } # end # # # good - constant is stubbed # describe SomeClass do # before do # foo_class = Class.new(described_class) do # def do_something # end # end # stub_const('FooClass', foo_class) # end # # it { expect(FooClass.new.double_that).to eq(4) } # end # @example # # bad # describe SomeClass do # module SomeModule # class SomeClass # def do_something # end # end # end # end # # # good # describe SomeClass do # before do # foo_class = Class.new(described_class) do # def do_something # end # end # stub_const('SomeModule::SomeClass', foo_class) # end # end # @see https://rspec.info/features/3-12/rspec-mocks/mutating-constants # # source://rubocop-rspec//lib/rubocop/cop/rspec/leaky_constant_declaration.rb#96 class RuboCop::Cop::RSpec::LeakyConstantDeclaration < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/leaky_constant_declaration.rb#101 def on_casgn(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/leaky_constant_declaration.rb#107 def on_class(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/leaky_constant_declaration.rb#113 def on_module(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/leaky_constant_declaration.rb#121 def inside_describe_block?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/leaky_constant_declaration.rb#98 RuboCop::Cop::RSpec::LeakyConstantDeclaration::MSG_CLASS = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/leaky_constant_declaration.rb#97 RuboCop::Cop::RSpec::LeakyConstantDeclaration::MSG_CONST = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/leaky_constant_declaration.rb#99 RuboCop::Cop::RSpec::LeakyConstantDeclaration::MSG_MODULE = T.let(T.unsafe(nil), String) # Checks for `let` definitions that come after an example. # # @example # # bad # let(:foo) { bar } # # it 'checks what foo does' do # expect(foo).to be # end # # let(:some) { other } # # it 'checks what some does' do # expect(some).to be # end # # # good # let(:foo) { bar } # let(:some) { other } # # it 'checks what foo does' do # expect(foo).to be # end # # it 'checks what some does' do # expect(some).to be # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#33 class RuboCop::Cop::RSpec::LetBeforeExamples < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#39 def example_or_group?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#47 def include_examples?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#58 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#93 def autocorrect(corrector, node, first_example); end # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#74 def check_let_declarations(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#66 def example_group_with_include_examples?(body); end # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#89 def find_first_example(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#70 def multiline_block?(block); end class << self # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#54 def autocorrect_incompatible_with; end end end # source://rubocop-rspec//lib/rubocop/cop/rspec/let_before_examples.rb#36 RuboCop::Cop::RSpec::LetBeforeExamples::MSG = T.let(T.unsafe(nil), String) # Checks unreferenced `let!` calls being used for test setup. # # @example # # bad # let!(:my_widget) { create(:widget) } # # it 'counts widgets' do # expect(Widget.count).to eq(1) # end # # # good # it 'counts widgets' do # create(:widget) # expect(Widget.count).to eq(1) # end # # # good # before { create(:widget) } # # it 'counts widgets' do # expect(Widget.count).to eq(1) # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/let_setup.rb#28 class RuboCop::Cop::RSpec::LetSetup < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/let_setup.rb#32 def example_or_shared_group_or_including?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/let_setup.rb#40 def let_bang(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/let_setup.rb#48 def method_called?(param0, param1); end # source://rubocop-rspec//lib/rubocop/cop/rspec/let_setup.rb#50 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/let_setup.rb#66 def child_let_bang(node, &block); end # source://rubocop-rspec//lib/rubocop/cop/rspec/let_setup.rb#60 def unused_let_bang(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/let_setup.rb#29 RuboCop::Cop::RSpec::LetSetup::MSG = T.let(T.unsafe(nil), String) # Helper methods to location. # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/location_help.rb#7 module RuboCop::Cop::RSpec::LocationHelp private # @example # foo 1, 2 # ^^^^^ # @param node [RuboCop::AST::SendNode] # @return [Parser::Source::Range] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/location_help.rb#15 def arguments_with_whitespace(node); end # @example # foo { bar } # ^^^^^^^^ # @param node [RuboCop::AST::SendNode] # @return [Parser::Source::Range] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/location_help.rb#26 def block_with_whitespace(node); end class << self # @example # foo 1, 2 # ^^^^^ # @param node [RuboCop::AST::SendNode] # @return [Parser::Source::Range] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/location_help.rb#15 def arguments_with_whitespace(node); end # @example # foo { bar } # ^^^^^^^^ # @param node [RuboCop::AST::SendNode] # @return [Parser::Source::Range] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/location_help.rb#26 def block_with_whitespace(node); end end end # Checks where `match_array` is used. # # This cop checks for the following: # - Prefer `contain_exactly` when matching an array with values. # - Prefer `eq` when using `match_array` with an empty array literal. # # @example # # bad # it { is_expected.to match_array([content1, content2]) } # # # good # it { is_expected.to contain_exactly(content1, content2) } # # # good # it { is_expected.to match_array([content] + array) } # # # good # it { is_expected.to match_array(%w(tremble in fear foolish mortals)) } # # source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#25 class RuboCop::Cop::RSpec::MatchArray < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#32 def match_array_with_empty_array?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#36 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#45 def check_populated_array(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#28 RuboCop::Cop::RSpec::MatchArray::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#29 RuboCop::Cop::RSpec::MatchArray::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Check that chains of messages are not being stubbed. # # @example # # bad # allow(foo).to receive_message_chain(:bar, :baz).and_return(42) # # # good # thing = Thing.new(baz: 42) # allow(foo).to receive(:bar).and_return(thing) # # source://rubocop-rspec//lib/rubocop/cop/rspec/message_chain.rb#16 class RuboCop::Cop::RSpec::MessageChain < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/message_chain.rb#20 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/message_chain.rb#17 RuboCop::Cop::RSpec::MessageChain::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/message_chain.rb#18 RuboCop::Cop::RSpec::MessageChain::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for consistent message expectation style. # # This cop can be configured in your configuration using the # `EnforcedStyle` option and supports `--auto-gen-config`. # # @example `EnforcedStyle: allow` (default) # # # bad # expect(foo).to receive(:bar) # # # good # allow(foo).to receive(:bar) # @example `EnforcedStyle: expect` # # # bad # allow(foo).to receive(:bar) # # # good # expect(foo).to receive(:bar) # # source://rubocop-rspec//lib/rubocop/cop/rspec/message_expectation.rb#27 class RuboCop::Cop::RSpec::MessageExpectation < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle # source://rubocop-rspec//lib/rubocop/cop/rspec/message_expectation.rb#35 def message_expectation(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/message_expectation.rb#42 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/message_expectation.rb#40 def receive_message?(param0); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/message_expectation.rb#55 def preferred_style?(expectation); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/message_expectation.rb#30 RuboCop::Cop::RSpec::MessageExpectation::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/message_expectation.rb#32 RuboCop::Cop::RSpec::MessageExpectation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks that message expectations are set using spies. # # This cop can be configured in your configuration using the # `EnforcedStyle` option and supports `--auto-gen-config`. # # @example `EnforcedStyle: have_received` (default) # # # bad # expect(foo).to receive(:bar) # do_something # # # good # allow(foo).to receive(:bar) # or use instance_spy # do_something # expect(foo).to have_received(:bar) # @example `EnforcedStyle: receive` # # # bad # allow(foo).to receive(:bar) # do_something # expect(foo).to have_received(:bar) # # # good # expect(foo).to receive(:bar) # do_something # # source://rubocop-rspec//lib/rubocop/cop/rspec/message_spies.rb#33 class RuboCop::Cop::RSpec::MessageSpies < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle # source://rubocop-rspec//lib/rubocop/cop/rspec/message_spies.rb#45 def message_expectation(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/message_spies.rb#54 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/message_spies.rb#50 def receive_message(param0); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/message_spies.rb#77 def error_message(receiver); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/message_spies.rb#73 def preferred_style?(expectation); end # source://rubocop-rspec//lib/rubocop/cop/rspec/message_spies.rb#67 def receive_message_matcher(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/message_spies.rb#38 RuboCop::Cop::RSpec::MessageSpies::MSG_HAVE_RECEIVED = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/message_spies.rb#36 RuboCop::Cop::RSpec::MessageSpies::MSG_RECEIVE = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/message_spies.rb#42 RuboCop::Cop::RSpec::MessageSpies::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Helper methods to find RSpec metadata. # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/metadata.rb#7 module RuboCop::Cop::RSpec::Metadata include ::RuboCop::RSpec::Language extend ::RuboCop::AST::NodePattern::Macros # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/metadata.rb#26 def metadata_in_block(param0, param1); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/metadata.rb#30 def on_block(node); end # @raise [::NotImplementedError] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/metadata.rb#43 def on_metadata(_symbols, _hash); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/metadata.rb#30 def on_numblock(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/metadata.rb#21 def rspec_configure(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/metadata.rb#13 def rspec_metadata(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/metadata.rb#49 def on_metadata_arguments(metadata_arguments); end end # Use consistent metadata style. # # This cop does not support autocorrection in the case of # `EnforcedStyle: hash` where the trailing metadata type is ambiguous. # (e.g. `describe 'Something', :a, b`) # # @example EnforcedStyle: symbol (default) # # bad # describe 'Something', a: true # # # good # describe 'Something', :a # @example EnforcedStyle: hash # # bad # describe 'Something', :a # # # good # describe 'Something', a: true # # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#25 class RuboCop::Cop::RSpec::MetadataStyle < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle include ::RuboCop::Cop::RSpec::Metadata include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#33 def extract_metadata_hash(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#43 def match_ambiguous_trailing_metadata?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#38 def match_boolean_metadata_pair?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#47 def on_metadata(symbols, hash); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#66 def autocorrect_pair(corrector, node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#71 def autocorrect_symbol(corrector, node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#78 def bad_metadata_pair?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#82 def bad_metadata_symbol?(_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#86 def format_symbol_to_pair_source(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#90 def insert_pair(corrector, node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#101 def insert_pair_as_last_argument(corrector, node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#110 def insert_pair_to_empty_hash_metadata(corrector, node, hash_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#117 def insert_pair_to_non_empty_hash_metadata(corrector, node, hash_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#124 def insert_symbol(corrector, node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#131 def message_for_style; end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#138 def on_metadata_pair(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#146 def on_metadata_symbol(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#154 def remove_pair(corrector, node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#164 def remove_pair_following(corrector, node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#176 def remove_pair_preceding(corrector, node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#188 def remove_symbol(corrector, node); end end # Checks that the first argument to an example group is not empty. # # @example # # bad # describe do # end # # RSpec.describe do # end # # # good # describe TestedClass do # end # # describe "A feature example" do # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/missing_example_group_argument.rb#23 class RuboCop::Cop::RSpec::MissingExampleGroupArgument < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/missing_example_group_argument.rb#26 def on_block(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/missing_example_group_argument.rb#24 RuboCop::Cop::RSpec::MissingExampleGroupArgument::MSG = T.let(T.unsafe(nil), String) # Checks for multiple top-level example groups. # # Multiple descriptions for the same class or module should either # be nested or separated into different test files. # # @example # # bad # describe MyClass, '.do_something' do # end # describe MyClass, '.do_something_else' do # end # # # good # describe MyClass do # describe '.do_something' do # end # describe '.do_something_else' do # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_describes.rb#26 class RuboCop::Cop::RSpec::MultipleDescribes < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::TopLevelGroup # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_describes.rb#31 def on_top_level_group(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_describes.rb#29 RuboCop::Cop::RSpec::MultipleDescribes::MSG = T.let(T.unsafe(nil), String) # Checks if examples contain too many `expect` calls. # # This cop is configurable using the `Max` option # and works with `--auto-gen-config`. # # @example # # bad # describe UserCreator do # it 'builds a user' do # expect(user.name).to eq("John") # expect(user.age).to eq(22) # end # end # # # good # describe UserCreator do # it 'sets the users name' do # expect(user.name).to eq("John") # end # # it 'sets the users age' do # expect(user.age).to eq(22) # end # end # @example `aggregate_failures: true` (default) # # good - the cop ignores when RSpec aggregates failures # describe UserCreator do # it 'builds a user', :aggregate_failures do # expect(user.name).to eq("John") # expect(user.age).to eq(22) # end # end # @example `aggregate_failures: false` # # Detected as an offense # describe UserCreator do # it 'builds a user', aggregate_failures: false do # expect(user.name).to eq("John") # expect(user.age).to eq(22) # end # end # @example `Max: 1` (default) # # bad # describe UserCreator do # it 'builds a user' do # expect(user.name).to eq("John") # expect(user.age).to eq(22) # end # end # @example `Max: 2` # # good # describe UserCreator do # it 'builds a user' do # expect(user.name).to eq("John") # expect(user.age).to eq(22) # end # end # @see http://betterspecs.org/#single Single expectation test # # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#69 class RuboCop::Cop::RSpec::MultipleExpectations < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableMax # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#78 def aggregate_failures?(param0 = T.unsafe(nil), param1); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#89 def aggregate_failures_block?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#86 def expect?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#93 def on_block(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#109 def example_with_aggregate_failures?(example_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#116 def find_aggregate_failures(example_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#121 def find_expectation(node, &block); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#132 def flag_example(node, expectation_count:); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#143 def max_expectations; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#74 RuboCop::Cop::RSpec::MultipleExpectations::ANYTHING = T.let(T.unsafe(nil), Proc) # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#72 RuboCop::Cop::RSpec::MultipleExpectations::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#75 RuboCop::Cop::RSpec::MultipleExpectations::TRUE = T.let(T.unsafe(nil), Proc) # Checks if example groups contain too many `let` and `subject` calls. # # This cop is configurable using the `Max` option and the `AllowSubject` # which will configure the cop to only register offenses on calls to # `let` and not calls to `subject`. # # @example # # bad # describe MyClass do # let(:foo) { [] } # let(:bar) { [] } # let!(:baz) { [] } # let(:qux) { [] } # let(:quux) { [] } # let(:quuz) { {} } # end # # describe MyClass do # let(:foo) { [] } # let(:bar) { [] } # let!(:baz) { [] } # # context 'when stuff' do # let(:qux) { [] } # let(:quux) { [] } # let(:quuz) { {} } # end # end # # # good # describe MyClass do # let(:bar) { [] } # let!(:baz) { [] } # let(:qux) { [] } # let(:quux) { [] } # let(:quuz) { {} } # end # # describe MyClass do # context 'when stuff' do # let(:foo) { [] } # let(:bar) { [] } # let!(:booger) { [] } # end # # context 'when other stuff' do # let(:qux) { [] } # let(:quux) { [] } # let(:quuz) { {} } # end # end # @example when disabling AllowSubject configuration # # rubocop.yml # # RSpec/MultipleMemoizedHelpers: # # AllowSubject: false # # # bad - `subject` counts towards memoized helpers # describe MyClass do # subject { {} } # let(:foo) { [] } # let(:bar) { [] } # let!(:baz) { [] } # let(:qux) { [] } # let(:quux) { [] } # end # @example with Max configuration # # rubocop.yml # # RSpec/MultipleMemoizedHelpers: # # Max: 1 # # # bad # describe MyClass do # let(:foo) { [] } # let(:bar) { [] } # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#84 class RuboCop::Cop::RSpec::MultipleMemoizedHelpers < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableMax include ::RuboCop::Cop::RSpec::Variable # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#90 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#101 def on_new_investigation; end private # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#110 def all_helpers(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#142 def allow_subject?; end # Returns the value of attribute example_group_memoized_helpers. # # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#108 def example_group_memoized_helpers; end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#117 def helpers(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#138 def max; end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#128 def variable_nodes(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#88 RuboCop::Cop::RSpec::MultipleMemoizedHelpers::MSG = T.let(T.unsafe(nil), String) # Checks if an example group defines `subject` multiple times. # # This cop does not support autocorrection in some cases. # The autocorrect behavior for this cop depends on the type of # duplication: # # - If multiple named subjects are defined then this probably indicates # that the overwritten subjects (all subjects except the last # definition) are effectively being used to define helpers. In this # case they are replaced with `let`. # # - If multiple unnamed subjects are defined though then this can *only* # be dead code and we remove the overwritten subject definitions. # # - If subjects are defined with `subject!` then we don't autocorrect. # This is enough of an edge case that people can just move this to # a `before` hook on their own # # @example # # bad # describe Foo do # subject(:user) { User.new } # subject(:post) { Post.new } # end # # # good # describe Foo do # let(:user) { User.new } # subject(:post) { Post.new } # end # # # bad (does not support autocorrection) # describe Foo do # subject!(:user) { User.new } # subject!(:post) { Post.new } # end # # # good # describe Foo do # before do # User.new # Post.new # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_subjects.rb#51 class RuboCop::Cop::RSpec::MultipleSubjects < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_subjects.rb#57 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_subjects.rb#71 def autocorrect(corrector, subject); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_subjects.rb#81 def named_subject?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_subjects.rb#89 def remove_autocorrect(corrector, node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_subjects.rb#85 def rename_autocorrect(corrector, node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_subjects.rb#55 RuboCop::Cop::RSpec::MultipleSubjects::MSG = T.let(T.unsafe(nil), String) # Checks for explicitly referenced test subjects. # # RSpec lets you declare an "implicit subject" using `subject { ... }` # which allows for tests like `it { is_expected.to be_valid }`. # If you need to reference your test subject you should explicitly # name it using `subject(:your_subject_name) { ... }`. Your test subjects # should be the most important object in your tests so they deserve # a descriptive name. # # This cop can be configured in your configuration using `EnforcedStyle`, # and `IgnoreSharedExamples` which will not report offenses for implicit # subjects in shared example groups. # # @example `EnforcedStyle: always` (default) # # bad # RSpec.describe User do # subject { described_class.new } # # it 'is valid' do # expect(subject.valid?).to be(true) # end # end # # # good # RSpec.describe User do # subject(:user) { described_class.new } # # it 'is valid' do # expect(user.valid?).to be(true) # end # end # # # also good # RSpec.describe User do # subject(:user) { described_class.new } # # it { is_expected.to be_valid } # end # @example `EnforcedStyle: named_only` # # bad # RSpec.describe User do # subject(:user) { described_class.new } # # it 'is valid' do # expect(subject.valid?).to be(true) # end # end # # # good # RSpec.describe User do # subject(:user) { described_class.new } # # it 'is valid' do # expect(user.valid?).to be(true) # end # end # # # also good # RSpec.describe User do # subject { described_class.new } # # it { is_expected.to be_valid } # end # # # acceptable # RSpec.describe User do # subject { described_class.new } # # it 'is valid' do # expect(subject.valid?).to be(true) # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#79 class RuboCop::Cop::RSpec::NamedSubject < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#85 def example_or_hook_block?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#97 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#90 def shared_example?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#95 def subject_usage(param0); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#120 def allow_explicit_subject?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#124 def always?; end # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#114 def check_explicit_subject(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#147 def find_subject(block_node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#109 def ignored_shared_example?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#128 def named_only?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#139 def nearest_subject(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#133 def subject_definition_is_named?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#82 RuboCop::Cop::RSpec::NamedSubject::MSG = T.let(T.unsafe(nil), String) # Helps to find namespace of the node. # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/namespace.rb#7 module RuboCop::Cop::RSpec::Namespace private # @example # namespace(node) # => ['A', 'B', 'C'] # @param node [RuboCop::AST::Node] # @return [Array] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/namespace.rb#14 def namespace(node); end end # Checks for nested example groups. # # This cop is configurable using the `Max` option # and supports `--auto-gen-config`. # # @example # # bad # context 'when using some feature' do # let(:some) { :various } # let(:feature) { :setup } # # context 'when user is signed in' do # flagged by rubocop # let(:user) do # UserCreate.call(user_attributes) # end # # let(:user_attributes) do # { # name: 'John', # age: 22, # role: role # } # end # # context 'when user is an admin' do # flagged by rubocop # let(:role) { 'admin' } # # it 'blah blah' # it 'yada yada' # end # end # end # # # good # context 'using some feature as an admin' do # let(:some) { :various } # let(:feature) { :setup } # # let(:user) do # UserCreate.call( # name: 'John', # age: 22, # role: 'admin' # ) # end # # it 'blah blah' # it 'yada yada' # end # @example `Max: 3` (default) # # bad # describe Foo do # context 'foo' do # context 'bar' do # context 'baz' do # flagged by rubocop # end # end # end # end # @example `Max: 2` # # bad # describe Foo do # context 'foo' do # context 'bar' do # flagged by rubocop # context 'baz' do # flagged by rubocop # end # end # end # end # @example `AllowedGroups: [] (default)` # describe Foo do # <-- nested groups 1 # context 'foo' do # <-- nested groups 2 # context 'bar' do # <-- nested groups 3 # end # end # end # @example `AllowedGroups: [path]` # describe Foo do # <-- nested groups 1 # path '/foo' do # <-- nested groups 1 (not counted) # context 'bar' do # <-- nested groups 2 # end # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#94 class RuboCop::Cop::RSpec::NestedGroups < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableMax include ::RuboCop::Cop::RSpec::TopLevelGroup # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#106 def on_top_level_group(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#156 def allowed_groups; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#133 def count_up_nesting?(node, example_group); end # @yield [node, nesting] # # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#118 def find_nested_example_groups(node, nesting: T.unsafe(nil), &block); end # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#143 def max_nesting; end # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#147 def max_nesting_config; end # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#139 def message(nesting); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#100 RuboCop::Cop::RSpec::NestedGroups::DEPRECATED_MAX_KEY = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#102 RuboCop::Cop::RSpec::NestedGroups::DEPRECATION_WARNING = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#98 RuboCop::Cop::RSpec::NestedGroups::MSG = T.let(T.unsafe(nil), String) # Checks if an example contains any expectation. # # All RSpec's example and expectation methods are covered by default. # If you are using your own custom methods, # add the following configuration: # # RSpec: # Language: # Examples: # Regular: # - custom_it # Expectations: # - custom_expect # # This cop can be customized with an allowed expectation methods pattern # with an `AllowedPatterns` option. ^expect_ and ^assert_ are allowed # by default. # # @example # # bad # it do # a? # end # # # good # it do # expect(a?).to be(true) # end # @example `AllowedPatterns` configuration # # # .rubocop.yml # # RSpec/NoExpectationExample: # # AllowedPatterns: # # - ^expect_ # # - ^assert_ # @example # # bad # it do # not_expect_something # end # # # good # it do # expect_something # end # # it do # assert_something # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/no_expectation_example.rb#58 class RuboCop::Cop::RSpec::NoExpectationExample < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::AllowedPattern include ::RuboCop::Cop::RSpec::SkipOrPending # @param node [RuboCop::AST::Node] # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/no_expectation_example.rb#74 def includes_expectation?(param0); end # @param node [RuboCop::AST::Node] # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/no_expectation_example.rb#84 def includes_skip_example?(param0); end # @param node [RuboCop::AST::BlockNode] # # source://rubocop-rspec//lib/rubocop/cop/rspec/no_expectation_example.rb#89 def on_block(node); end # @param node [RuboCop::AST::BlockNode] # # source://rubocop-rspec//lib/rubocop/cop/rspec/no_expectation_example.rb#89 def on_numblock(node); end # @param node [RuboCop::AST::Node] # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/no_expectation_example.rb#67 def regular_or_focused_example?(param0 = T.unsafe(nil)); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/no_expectation_example.rb#62 RuboCop::Cop::RSpec::NoExpectationExample::MSG = T.let(T.unsafe(nil), String) # Checks for consistent method usage for negating expectations. # # @example `EnforcedStyle: not_to` (default) # # bad # it '...' do # expect(false).to_not be_true # end # # # good # it '...' do # expect(false).not_to be_true # end # @example `EnforcedStyle: to_not` # # bad # it '...' do # expect(false).not_to be_true # end # # # good # it '...' do # expect(false).to_not be_true # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/not_to_not.rb#30 class RuboCop::Cop::RSpec::NotToNot < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/not_to_not.rb#38 def not_to_not_offense(param0 = T.unsafe(nil), param1); end # source://rubocop-rspec//lib/rubocop/cop/rspec/not_to_not.rb#40 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/not_to_not.rb#50 def message(_node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/not_to_not.rb#34 RuboCop::Cop::RSpec::NotToNot::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/not_to_not.rb#35 RuboCop::Cop::RSpec::NotToNot::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks if there is a let/subject that overwrites an existing one. # # @example # # bad # let(:foo) { bar } # let(:foo) { baz } # # subject(:foo) { bar } # let(:foo) { baz } # # let(:foo) { bar } # let!(:foo) { baz } # # # good # subject(:test) { something } # let(:foo) { bar } # let(:baz) { baz } # let!(:other) { other } # # source://rubocop-rspec//lib/rubocop/cop/rspec/overwriting_setup.rb#25 class RuboCop::Cop::RSpec::OverwritingSetup < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/overwriting_setup.rb#34 def first_argument_name(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/overwriting_setup.rb#36 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/overwriting_setup.rb#29 def setup?(param0 = T.unsafe(nil)); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/overwriting_setup.rb#64 def common_setup?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/overwriting_setup.rb#49 def find_duplicates(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/overwriting_setup.rb#26 RuboCop::Cop::RSpec::OverwritingSetup::MSG = T.let(T.unsafe(nil), String) # Checks for any pending or skipped examples. # # @example # # bad # describe MyClass do # it "should be true" # end # # describe MyClass do # it "should be true", skip: true do # expect(1).to eq(2) # end # end # # describe MyClass do # it "should be true" do # pending # end # end # # describe MyClass do # xit "should be true" do # end # end # # # good # describe MyClass do # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/pending.rb#35 class RuboCop::Cop::RSpec::Pending < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::SkipOrPending # source://rubocop-rspec//lib/rubocop/cop/rspec/pending.rb#61 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending.rb#54 def pending_block?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending.rb#41 def skippable?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending.rb#49 def skippable_example?(param0 = T.unsafe(nil)); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/pending.rb#69 def skipped?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/pending.rb#74 def skipped_regular_example_without_body?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending.rb#38 RuboCop::Cop::RSpec::Pending::MSG = T.let(T.unsafe(nil), String) # Checks for pending or skipped examples without reason. # # @example # # bad # pending 'does something' do # end # # # bad # it 'does something', :pending do # end # # # bad # it 'does something' do # pending # end # # # bad # xdescribe 'something' do # end # # # bad # skip 'does something' do # end # # # bad # it 'does something', :skip do # end # # # bad # it 'does something' do # skip # end # # # bad # it 'does something' # # # good # it 'does something' do # pending 'reason' # end # # # good # it 'does something' do # skip 'reason' # end # # # good # it 'does something', pending: 'reason' do # end # # # good # it 'does something', skip: 'reason' do # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#59 class RuboCop::Cop::RSpec::PendingWithoutReason < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#82 def metadata_without_reason?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#102 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#98 def pending_step_without_reason?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#93 def skipped_by_example_group_method?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#72 def skipped_by_example_method?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#77 def skipped_by_example_method_with_block?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#63 def skipped_in_example?(param0 = T.unsafe(nil)); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#123 def block_node_example_group?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#135 def on_pending_by_metadata(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#151 def on_skipped_by_example_group_method(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#141 def on_skipped_by_example_method(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#129 def on_skipped_by_in_example_method(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#116 def parent_node(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#60 RuboCop::Cop::RSpec::PendingWithoutReason::MSG = T.let(T.unsafe(nil), String) # Prefer using predicate matcher over using predicate method directly. # # RSpec defines magic matchers for predicate methods. # This cop recommends to use the predicate matcher instead of using # predicate method directly. # # @example Strict: true, EnforcedStyle: inflected (default) # # bad # expect(foo.something?).to be_truthy # # # good # expect(foo).to be_something # # # also good - It checks "true" strictly. # expect(foo.something?).to be(true) # @example Strict: false, EnforcedStyle: inflected # # bad # expect(foo.something?).to be_truthy # expect(foo.something?).to be(true) # # # good # expect(foo).to be_something # @example Strict: true, EnforcedStyle: explicit # # bad # expect(foo).to be_something # # # good - the above code is rewritten to it by this cop # expect(foo.something?).to be(true) # # # bad - no autocorrect # expect(foo) # .to be_something(<<~TEXT) # bar # TEXT # # # good # expect(foo.something?(<<~TEXT)).to be(true) # bar # TEXT # @example Strict: false, EnforcedStyle: explicit # # bad # expect(foo).to be_something # # # good - the above code is rewritten to it by this cop # expect(foo.something?).to be_truthy # # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#314 class RuboCop::Cop::RSpec::PredicateMatcher < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle include ::RuboCop::Cop::RSpec::InflectedHelper include ::RuboCop::Cop::RSpec::ExplicitHelper extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#331 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#322 def on_send(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#320 RuboCop::Cop::RSpec::PredicateMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # source://rubocop-rspec//lib/rubocop/cop/rspec/rails/avoid_setup_hook.rb#6 module RuboCop::Cop::RSpec::Rails; end # Checks that tests use RSpec `before` hook over Rails `setup` # method. # # @example # # bad # setup do # allow(foo).to receive(:bar) # end # # # good # before do # allow(foo).to receive(:bar) # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/rails/avoid_setup_hook.rb#23 RuboCop::Cop::RSpec::Rails::AvoidSetupHook = RuboCop::Cop::RSpecRails::AvoidSetupHook # Checks that tests use `have_http_status` instead of equality matchers. # # @example ResponseMethods: ['response', 'last_response'] (default) # # bad # expect(response.status).to be(200) # expect(last_response.code).to eq("200") # # # good # expect(response).to have_http_status(200) # expect(last_response).to have_http_status(200) # @example ResponseMethods: ['foo_response'] # # bad # expect(foo_response.status).to be(200) # # # good # expect(foo_response).to have_http_status(200) # # # also good # expect(response).to have_http_status(200) # expect(last_response).to have_http_status(200) # # source://rubocop-rspec//lib/rubocop/cop/rspec/rails/have_http_status.rb#31 RuboCop::Cop::RSpec::Rails::HaveHttpStatus = RuboCop::Cop::RSpecRails::HaveHttpStatus # Enforces use of symbolic or numeric value to describe HTTP status. # # This cop inspects only `have_http_status` calls. # So, this cop does not check if a method starting with `be_*` is # used when setting for `EnforcedStyle: symbolic` or # `EnforcedStyle: numeric`. # # @example `EnforcedStyle: symbolic` (default) # # bad # it { is_expected.to have_http_status 200 } # it { is_expected.to have_http_status 404 } # it { is_expected.to have_http_status "403" } # # # good # it { is_expected.to have_http_status :ok } # it { is_expected.to have_http_status :not_found } # it { is_expected.to have_http_status :forbidden } # it { is_expected.to have_http_status :success } # it { is_expected.to have_http_status :error } # @example `EnforcedStyle: numeric` # # bad # it { is_expected.to have_http_status :ok } # it { is_expected.to have_http_status :not_found } # it { is_expected.to have_http_status "forbidden" } # # # good # it { is_expected.to have_http_status 200 } # it { is_expected.to have_http_status 404 } # it { is_expected.to have_http_status 403 } # it { is_expected.to have_http_status :success } # it { is_expected.to have_http_status :error } # @example `EnforcedStyle: be_status` # # bad # it { is_expected.to have_http_status :ok } # it { is_expected.to have_http_status :not_found } # it { is_expected.to have_http_status "forbidden" } # it { is_expected.to have_http_status 200 } # it { is_expected.to have_http_status 404 } # it { is_expected.to have_http_status "403" } # # # good # it { is_expected.to be_ok } # it { is_expected.to be_not_found } # it { is_expected.to have_http_status :success } # it { is_expected.to have_http_status :error } # # source://rubocop-rspec//lib/rubocop/cop/rspec/rails/http_status.rb#57 RuboCop::Cop::RSpec::Rails::HttpStatus = RuboCop::Cop::RSpecRails::HttpStatus # Identifies redundant spec type. # # After setting up rspec-rails, you will have enabled # `config.infer_spec_type_from_file_location!` by default in # spec/rails_helper.rb. This cop works in conjunction with # this config. # If you disable this config, disable this cop as well. # # @example # # bad # # spec/models/user_spec.rb # RSpec.describe User, type: :model do # end # # # good # # spec/models/user_spec.rb # RSpec.describe User do # end # # # good # # spec/models/user_spec.rb # RSpec.describe User, type: :common do # end # @example `Inferences` configuration # # .rubocop.yml # # RSpec/Rails/InferredSpecType: # # Inferences: # # services: service # # # bad # # spec/services/user_spec.rb # RSpec.describe User, type: :service do # end # # # good # # spec/services/user_spec.rb # RSpec.describe User do # end # # # good # # spec/services/user_spec.rb # RSpec.describe User, type: :common do # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/rails/inferred_spec_type.rb#58 RuboCop::Cop::RSpec::Rails::InferredSpecType = RuboCop::Cop::RSpecRails::InferredSpecType # Check if using Minitest-like matchers. # # Check the use of minitest-like matchers # starting with `assert_` or `refute_`. # # @example # # bad # assert_equal(a, b) # assert_equal a, b, "must be equal" # assert_not_includes a, b # refute_equal(a, b) # assert_nil a # refute_empty(b) # assert_true(a) # assert_false(a) # # # good # expect(b).to eq(a) # expect(b).to(eq(a), "must be equal") # expect(a).not_to include(b) # expect(b).not_to eq(a) # expect(a).to eq(nil) # expect(a).not_to be_empty # expect(a).to be(true) # expect(a).to be(false) # # source://rubocop-rspec//lib/rubocop/cop/rspec/rails/minitest_assertions.rb#35 RuboCop::Cop::RSpec::Rails::MinitestAssertions = RuboCop::Cop::RSpecRails::MinitestAssertions # Enforces use of `be_invalid` or `not_to` for negated be_valid. # # @example EnforcedStyle: not_to (default) # # bad # expect(foo).to be_invalid # # # good # expect(foo).not_to be_valid # # # good (with method chain) # expect(foo).to be_invalid.and be_odd # @example EnforcedStyle: be_invalid # # bad # expect(foo).not_to be_valid # # # good # expect(foo).to be_invalid # # # good (with method chain) # expect(foo).to be_invalid.or be_even # # source://rubocop-rspec//lib/rubocop/cop/rspec/rails/negation_be_valid.rb#35 RuboCop::Cop::RSpec::Rails::NegationBeValid = RuboCop::Cop::RSpecRails::NegationBeValid # Prefer to travel in `before` rather than `around`. # # @example # # bad # around do |example| # freeze_time do # example.run # end # end # # # good # before { freeze_time } # # source://rubocop-rspec//lib/rubocop/cop/rspec/rails/travel_around.rb#30 RuboCop::Cop::RSpec::Rails::TravelAround = RuboCop::Cop::RSpecRails::TravelAround # Check for `once` and `twice` receive counts matchers usage. # # @example # # bad # expect(foo).to receive(:bar).exactly(1).times # expect(foo).to receive(:bar).exactly(2).times # expect(foo).to receive(:bar).at_least(1).times # expect(foo).to receive(:bar).at_least(2).times # expect(foo).to receive(:bar).at_most(1).times # expect(foo).to receive(:bar).at_most(2).times # # # good # expect(foo).to receive(:bar).once # expect(foo).to receive(:bar).twice # expect(foo).to receive(:bar).at_least(:once) # expect(foo).to receive(:bar).at_least(:twice) # expect(foo).to receive(:bar).at_most(:once) # expect(foo).to receive(:bar).at_most(:twice).times # # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_counts.rb#25 class RuboCop::Cop::RSpec::ReceiveCounts < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_counts.rb#40 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_counts.rb#33 def receive_counts(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_counts.rb#38 def stub?(param0); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_counts.rb#55 def autocorrect(corrector, node, range); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_counts.rb#72 def matcher_for(method, count); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_counts.rb#64 def message_for(node, source); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_counts.rb#81 def range(node, offending_node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_counts.rb#28 RuboCop::Cop::RSpec::ReceiveCounts::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_counts.rb#30 RuboCop::Cop::RSpec::ReceiveCounts::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for multiple messages stubbed on the same object. # # @example # # bad # before do # allow(Service).to receive(:foo).and_return(bar) # allow(Service).to receive(:baz).and_return(qux) # end # # # good # before do # allow(Service).to receive_messages(foo: bar, baz: qux) # end # # # good - ignore same message # before do # allow(Service).to receive(:foo).and_return(bar) # allow(Service).to receive(:foo).and_return(qux) # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#31 class RuboCop::Cop::RSpec::ReceiveMessages < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#44 def allow_argument(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#39 def allow_receive_message?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#63 def on_begin(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#59 def receive_and_return_argument(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#54 def receive_arg(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#49 def receive_node(param0); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#83 def add_repeated_lines_and_arguments(items); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#100 def arguments(items); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#150 def heredoc_or_splat?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#146 def item_range_by_whole_lines(item); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#135 def message(repeated_lines); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#109 def normalize_receive_arg(receive_arg); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#117 def normalize_return_arg(return_arg); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#125 def register_offense(item, repeated_lines, args); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#73 def repeated_receive_message(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#139 def replace_to_receive_messages(corrector, item, args); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#155 def requires_quotes?(value); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#91 def uniq_items(items); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_messages.rb#35 RuboCop::Cop::RSpec::ReceiveMessages::MSG = T.let(T.unsafe(nil), String) # Prefer `not_to receive(...)` over `receive(...).never`. # # @example # # bad # expect(foo).to receive(:bar).never # # # good # expect(foo).not_to receive(:bar) # # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_never.rb#15 class RuboCop::Cop::RSpec::ReceiveNever < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_never.rb#21 def method_on_stub?(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_never.rb#23 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_never.rb#33 def autocorrect(corrector, node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_never.rb#17 RuboCop::Cop::RSpec::ReceiveNever::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/receive_never.rb#18 RuboCop::Cop::RSpec::ReceiveNever::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Remove redundant `around` hook. # # @example # # bad # around do |example| # example.run # end # # # good # # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_around.rb#16 class RuboCop::Cop::RSpec::RedundantAround < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_around.rb#43 def match_redundant_around_hook_block?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_around.rb#48 def match_redundant_around_hook_send?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_around.rb#23 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_around.rb#23 def on_numblock(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_around.rb#32 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_around.rb#59 def autocorrect(corrector, node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_around.rb#19 RuboCop::Cop::RSpec::RedundantAround::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_around.rb#21 RuboCop::Cop::RSpec::RedundantAround::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for redundant predicate matcher. # # @example # # bad # expect(foo).to be_exist(bar) # expect(foo).not_to be_include(bar) # expect(foo).to be_all(bar) # # # good # expect(foo).to exist(bar) # expect(foo).not_to include(bar) # expect(foo).to all be(bar) # # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_predicate_matcher.rb#19 class RuboCop::Cop::RSpec::RedundantPredicateMatcher < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_predicate_matcher.rb#28 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_predicate_matcher.rb#44 def message(bad_method, good_method); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_predicate_matcher.rb#48 def replaceable_arguments?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_predicate_matcher.rb#56 def replaced_method_name(method_name); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_predicate_matcher.rb#22 RuboCop::Cop::RSpec::RedundantPredicateMatcher::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/redundant_predicate_matcher.rb#23 RuboCop::Cop::RSpec::RedundantPredicateMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks that `remove_const` is not used in specs. # # @example # # bad # it 'does something' do # Object.send(:remove_const, :SomeConstant) # end # # before do # SomeClass.send(:remove_const, :SomeConstant) # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/remove_const.rb#18 class RuboCop::Cop::RSpec::RemoveConst < ::RuboCop::Cop::RSpec::Base # Check for offenses # # source://rubocop-rspec//lib/rubocop/cop/rspec/remove_const.rb#32 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/remove_const.rb#27 def remove_const(param0 = T.unsafe(nil)); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/remove_const.rb#22 RuboCop::Cop::RSpec::RemoveConst::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/remove_const.rb#24 RuboCop::Cop::RSpec::RemoveConst::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Check for repeated description strings in example groups. # # @example # # bad # RSpec.describe User do # it 'is valid' do # # ... # end # # it 'is valid' do # # ... # end # end # # # good # RSpec.describe User do # it 'is valid when first and last name are present' do # # ... # end # # it 'is valid when last name only is present' do # # ... # end # end # # # good # RSpec.describe User do # it 'is valid' do # # ... # end # # it 'is valid', :flag do # # ... # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_description.rb#42 class RuboCop::Cop::RSpec::RepeatedDescription < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_description.rb#45 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_description.rb#88 def example_signature(example); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_description.rb#92 def its_signature(example); end # Select examples in the current scope with repeated description strings # # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_description.rb#60 def repeated_descriptions(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_description.rb#74 def repeated_its(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_description.rb#43 RuboCop::Cop::RSpec::RepeatedDescription::MSG = T.let(T.unsafe(nil), String) # Check for repeated examples within example groups. # # @example # # it 'is valid' do # expect(user).to be_valid # end # # it 'validates the user' do # expect(user).to be_valid # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example.rb#18 class RuboCop::Cop::RSpec::RepeatedExample < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example.rb#21 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example.rb#41 def example_signature(example); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example.rb#31 def repeated_examples(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example.rb#19 RuboCop::Cop::RSpec::RepeatedExample::MSG = T.let(T.unsafe(nil), String) # Check for repeated describe and context block body. # # @example # # bad # describe 'cool feature x' do # it { cool_predicate } # end # # describe 'cool feature y' do # it { cool_predicate } # end # # # good # describe 'cool feature' do # it { cool_predicate } # end # # describe 'another cool feature' do # it { another_predicate } # end # # # good # context 'when case x', :tag do # it { cool_predicate } # end # # context 'when case y' do # it { cool_predicate } # end # # # good # context Array do # it { is_expected.to respond_to :each } # end # # context Hash do # it { is_expected.to respond_to :each } # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#45 class RuboCop::Cop::RSpec::RepeatedExampleGroupBody < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::SkipOrPending # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#59 def body(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#62 def const_arg(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#56 def metadata(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#64 def on_begin(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#51 def several_example_groups?(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#85 def add_repeated_lines(groups); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#94 def message(group, repeats); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#74 def repeated_group_bodies(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#90 def signature_keys(group); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_body.rb#48 RuboCop::Cop::RSpec::RepeatedExampleGroupBody::MSG = T.let(T.unsafe(nil), String) # Check for repeated example group descriptions. # # @example # # bad # describe 'cool feature' do # # example group # end # # describe 'cool feature' do # # example group # end # # # bad # context 'when case x' do # # example group # end # # describe 'when case x' do # # example group # end # # # good # describe 'cool feature' do # # example group # end # # describe 'another cool feature' do # # example group # end # # # good # context 'when case x' do # # example group # end # # context 'when another case' do # # example group # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_description.rb#45 class RuboCop::Cop::RSpec::RepeatedExampleGroupDescription < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::SkipOrPending # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_description.rb#56 def doc_string_and_metadata(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_description.rb#61 def empty_description?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_description.rb#63 def on_begin(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_description.rb#51 def several_example_groups?(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_description.rb#85 def add_repeated_lines(groups); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_description.rb#90 def message(group, repeats); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_description.rb#73 def repeated_group_descriptions(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_example_group_description.rb#48 RuboCop::Cop::RSpec::RepeatedExampleGroupDescription::MSG = T.let(T.unsafe(nil), String) # Check for repeated include of shared examples. # # @example # # bad # describe 'foo' do # include_examples 'cool stuff' # include_examples 'cool stuff' # end # # # bad # describe 'foo' do # it_behaves_like 'a cool', 'thing' # it_behaves_like 'a cool', 'thing' # end # # # bad # context 'foo' do # it_should_behave_like 'a duck' # it_should_behave_like 'a duck' # end # # # good # describe 'foo' do # include_examples 'cool stuff' # end # # describe 'bar' do # include_examples 'cool stuff' # end # # # good # describe 'foo' do # it_behaves_like 'a cool', 'thing' # it_behaves_like 'a cool', 'person' # end # # # good # context 'foo' do # it_should_behave_like 'a duck' # it_should_behave_like 'a goose' # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#48 class RuboCop::Cop::RSpec::RepeatedIncludeExample < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#58 def include_examples?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#65 def on_begin(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#53 def several_include_examples?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#62 def shared_examples_name(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#90 def add_repeated_lines(items); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#85 def literal_include_examples?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#99 def message(item, repeats); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#75 def repeated_include_examples(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#95 def signature_keys(item); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_include_example.rb#49 RuboCop::Cop::RSpec::RepeatedIncludeExample::MSG = T.let(T.unsafe(nil), String) # Checks for repeated calls to subject missing that it is memoized. # # @example # # bad # it do # subject # expect { subject }.to not_change { A.count } # end # # it do # expect { subject }.to change { A.count } # expect { subject }.to not_change { A.count } # end # # # good # it do # expect { my_method }.to change { A.count } # expect { my_method }.to not_change { A.count } # end # # # also good # it do # expect { subject.a }.to change { A.count } # expect { subject.b }.to not_change { A.count } # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_subject_call.rb#32 class RuboCop::Cop::RSpec::RepeatedSubjectCall < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::TopLevelGroup # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_subject_call.rb#65 def on_top_level_group(node); end # Find a named or unnamed subject definition # # @example anonymous subject # subject?(parse('subject { foo }').ast) do |name| # name # => :subject # end # @example named subject # subject?(parse('subject(:thing) { foo }').ast) do |name| # name # => :thing # end # @param node [RuboCop::AST::Node] # @yield [Symbol] subject name # # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_subject_call.rb#53 def subject?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_subject_call.rb#61 def subject_calls(param0, param1); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_subject_call.rb#73 def detect_offense(subject_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_subject_call.rb#85 def detect_offenses_in_block(node, subject_names = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_subject_call.rb#97 def detect_offenses_in_example(node, subject_names); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_subject_call.rb#111 def detect_subjects_in_scope(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_subject_call.rb#81 def expect_block(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/repeated_subject_call.rb#35 RuboCop::Cop::RSpec::RepeatedSubjectCall::MSG = T.let(T.unsafe(nil), String) # Checks for consistent style of stub's return setting. # # Enforces either `and_return` or block-style return in the cases # where the returned value is constant. Ignores dynamic returned values # are the result would be different # # This cop can be configured using the `EnforcedStyle` option # # @example `EnforcedStyle: and_return` (default) # # bad # allow(Foo).to receive(:bar) { "baz" } # expect(Foo).to receive(:bar) { "baz" } # # # good # allow(Foo).to receive(:bar).and_return("baz") # expect(Foo).to receive(:bar).and_return("baz") # # also good as the returned value is dynamic # allow(Foo).to receive(:bar) { bar.baz } # @example `EnforcedStyle: block` # # bad # allow(Foo).to receive(:bar).and_return("baz") # expect(Foo).to receive(:bar).and_return("baz") # # # good # allow(Foo).to receive(:bar) { "baz" } # expect(Foo).to receive(:bar) { "baz" } # # also good as the returned value is dynamic # allow(Foo).to receive(:bar).and_return(bar.baz) # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#36 class RuboCop::Cop::RSpec::ReturnFromStub < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#51 def and_return_value(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#45 def contains_stub?(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#62 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#55 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#48 def stub_with_block?(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#71 def check_and_return_call(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#81 def check_block_body(block); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#90 def dynamic?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#95 class RuboCop::Cop::RSpec::ReturnFromStub::AndReturnCallCorrector # @return [AndReturnCallCorrector] a new instance of AndReturnCallCorrector # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#96 def initialize(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#102 def call(corrector); end private # Returns the value of attribute arg. # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#111 def arg; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#133 def hash_without_braces?; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#113 def heredoc?; end # Returns the value of attribute node. # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#111 def node; end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#117 def range; end # Returns the value of attribute receiver. # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#111 def receiver; end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#125 def replacement; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#139 class RuboCop::Cop::RSpec::ReturnFromStub::BlockBodyCorrector # @return [BlockBodyCorrector] a new instance of BlockBodyCorrector # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#140 def initialize(block); end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#146 def call(corrector); end private # Returns the value of attribute block. # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#158 def block; end # Returns the value of attribute body. # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#158 def body; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#160 def heredoc?; end # Returns the value of attribute node. # # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#158 def node; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#164 RuboCop::Cop::RSpec::ReturnFromStub::BlockBodyCorrector::NULL_BLOCK_BODY = T.let(T.unsafe(nil), T.untyped) # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#40 RuboCop::Cop::RSpec::ReturnFromStub::MSG_AND_RETURN = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#41 RuboCop::Cop::RSpec::ReturnFromStub::MSG_BLOCK = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/return_from_stub.rb#42 RuboCop::Cop::RSpec::ReturnFromStub::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for let scattered across the example group. # # Group lets together # # @example # # bad # describe Foo do # let(:foo) { 1 } # subject { Foo } # let(:bar) { 2 } # before { prepare } # let!(:baz) { 3 } # end # # # good # describe Foo do # subject { Foo } # before { prepare } # let(:foo) { 1 } # let(:bar) { 2 } # let!(:baz) { 3 } # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_let.rb#29 class RuboCop::Cop::RSpec::ScatteredLet < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_let.rb#34 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_let.rb#42 def check_let_declarations(body); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_let.rb#32 RuboCop::Cop::RSpec::ScatteredLet::MSG = T.let(T.unsafe(nil), String) # Checks for setup scattered across multiple hooks in an example group. # # Unify `before`, `after`, and `around` hooks when possible. # # @example # # bad # describe Foo do # before { setup1 } # before { setup2 } # end # # # good # describe Foo do # before do # setup1 # setup2 # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#25 class RuboCop::Cop::RSpec::ScatteredSetup < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#32 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#75 def autocorrect(corrector, first_occurrence, occurrence); end # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#60 def lines_msg(numbers); end # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#68 def message(occurrences, occurrence); end # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#47 def repeated_hooks(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#29 RuboCop::Cop::RSpec::ScatteredSetup::MSG = T.let(T.unsafe(nil), String) # Checks for proper shared_context and shared_examples usage. # # If there are no examples defined, use shared_context. # If there is no setup defined, use shared_examples. # # @example # # bad # RSpec.shared_context 'only examples here' do # it 'does x' do # end # # it 'does y' do # end # end # # # good # RSpec.shared_examples 'only examples here' do # it 'does x' do # end # # it 'does y' do # end # end # @example # # bad # RSpec.shared_examples 'only setup here' do # subject(:foo) { :bar } # # let(:baz) { :bazz } # # before do # something # end # end # # # good # RSpec.shared_context 'only setup here' do # subject(:foo) { :bar } # # let(:baz) { :bazz } # # before do # something # end # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_context.rb#53 class RuboCop::Cop::RSpec::SharedContext < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_context.rb#65 def context?(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_context.rb#60 def examples?(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_context.rb#81 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_context.rb#72 def shared_context(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_context.rb#77 def shared_example(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_context.rb#97 def context_with_only_examples(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_context.rb#101 def examples_with_only_context(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_context.rb#57 RuboCop::Cop::RSpec::SharedContext::MSG_CONTEXT = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_context.rb#56 RuboCop::Cop::RSpec::SharedContext::MSG_EXAMPLES = T.let(T.unsafe(nil), String) # Checks for consistent style for shared example names. # # Enforces either `string` or `symbol` for shared example names. # # This cop can be configured using the `EnforcedStyle` option # # @example `EnforcedStyle: string` (default) # # bad # it_behaves_like :foo_bar_baz # it_should_behave_like :foo_bar_baz # shared_examples :foo_bar_baz # shared_examples_for :foo_bar_baz # include_examples :foo_bar_baz # # # good # it_behaves_like 'foo bar baz' # it_should_behave_like 'foo bar baz' # shared_examples 'foo bar baz' # shared_examples_for 'foo bar baz' # include_examples 'foo bar baz' # @example `EnforcedStyle: symbol` # # bad # it_behaves_like 'foo bar baz' # it_should_behave_like 'foo bar baz' # shared_examples 'foo bar baz' # shared_examples_for 'foo bar baz' # include_examples 'foo bar baz' # # # good # it_behaves_like :foo_bar_baz # it_should_behave_like :foo_bar_baz # shared_examples :foo_bar_baz # shared_examples_for :foo_bar_baz # include_examples :foo_bar_baz # # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#42 class RuboCop::Cop::RSpec::SharedExamples < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#54 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#47 def shared_examples(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#75 def new_checker(ast_node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#67 def offense?(ast_node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#104 class RuboCop::Cop::RSpec::SharedExamples::StringChecker # @return [StringChecker] a new instance of StringChecker # # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#110 def initialize(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#114 def message; end # Returns the value of attribute node. # # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#108 def node; end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#118 def preferred_style; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#105 RuboCop::Cop::RSpec::SharedExamples::StringChecker::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#84 class RuboCop::Cop::RSpec::SharedExamples::SymbolChecker # @return [SymbolChecker] a new instance of SymbolChecker # # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#90 def initialize(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#94 def message; end # Returns the value of attribute node. # # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#88 def node; end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#98 def preferred_style; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/shared_examples.rb#85 RuboCop::Cop::RSpec::SharedExamples::SymbolChecker::MSG = T.let(T.unsafe(nil), String) # Checks that chains of messages contain more than one element. # # @example # # bad # allow(foo).to receive_message_chain(:bar).and_return(42) # # # good # allow(foo).to receive(:bar).and_return(42) # # # also good # allow(foo).to receive(:bar, :baz) # allow(foo).to receive("bar.baz") # # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#19 class RuboCop::Cop::RSpec::SingleArgumentMessageChain < ::RuboCop::Cop::RSpec::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#27 def message_chain(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#34 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#32 def single_key_hash?(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#49 def autocorrect(corrector, node, method, arg); end # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#77 def autocorrect_array_arg(corrector, arg); end # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#69 def autocorrect_hash_arg(corrector, arg); end # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#83 def key_to_arg(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#87 def replacement(method); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#65 def single_element_array?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#55 def valid_usage?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#22 RuboCop::Cop::RSpec::SingleArgumentMessageChain::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#24 RuboCop::Cop::RSpec::SingleArgumentMessageChain::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for passing a block to `skip` within examples. # # @example # # bad # it 'does something' do # skip 'not yet implemented' do # do_something # end # end # # # good # it 'does something' do # skip 'not yet implemented' # do_something # end # # # good - when outside example # skip 'not yet implemented' do # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/skip_block_inside_example.rb#26 class RuboCop::Cop::RSpec::SkipBlockInsideExample < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/skip_block_inside_example.rb#29 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/skip_block_inside_example.rb#29 def on_numblock(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/skip_block_inside_example.rb#40 def inside_example?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/skip_block_inside_example.rb#27 RuboCop::Cop::RSpec::SkipBlockInsideExample::MSG = T.let(T.unsafe(nil), String) # Helps check offenses with variable definitions # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/skip_or_pending.rb#7 module RuboCop::Cop::RSpec::SkipOrPending extend ::RuboCop::AST::NodePattern::Macros # Match skip/pending statements inside a block (e.g. `context`) # # @example source that matches # context 'when color is blue' do # skip 'not implemented yet' # pending 'not implemented yet' # end # @example source that does not match # skip 'not implemented yet' # pending 'not implemented yet' # @param node [RuboCop::AST::Node] # @return [Array] matching nodes # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/skip_or_pending.rb#33 def skip_or_pending_inside_block?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/skip_or_pending.rb#11 def skipped_in_metadata?(param0 = T.unsafe(nil)); end end # Sort RSpec metadata alphabetically. # # @example # # bad # describe 'Something', :b, :a # context 'Something', foo: 'bar', baz: true # it 'works', :b, :a, foo: 'bar', baz: true # # # good # describe 'Something', :a, :b # context 'Something', baz: true, foo: 'bar' # it 'works', :a, :b, baz: true, foo: 'bar' # # source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#19 class RuboCop::Cop::RSpec::SortMetadata < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::Metadata include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#26 def on_metadata(symbols, hash); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#38 def crime_scene(symbols, pairs); end # source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#47 def replacement(symbols, pairs); end # source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#55 def sort_pairs(pairs); end # source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#59 def sort_symbols(symbols); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#51 def sorted?(symbols, pairs); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#24 RuboCop::Cop::RSpec::SortMetadata::MSG = T.let(T.unsafe(nil), String) # Checks that spec file paths are consistent and well-formed. # # @example # # bad # whatever_spec.rb # describe MyClass # my_class_spec.rb # describe MyClass, '#method' # # # good # my_class_spec.rb # describe MyClass # my_class_method_spec.rb # describe MyClass, '#method' # my_class/method_spec.rb # describe MyClass, '#method' # @example `CustomTransform: {RuboCop=>rubocop, RSpec=>rspec}` (default) # # good # rubocop_spec.rb # describe RuboCop # rspec_spec.rb # describe RSpec # @example `IgnoreMethods: false` (default) # # bad # my_class_spec.rb # describe MyClass, '#method' # @example `IgnoreMethods: true` # # good # my_class_spec.rb # describe MyClass, '#method' # @example `IgnoreMetadata: {type=>routing}` (default) # # good # whatever_spec.rb # describe MyClass, type: :routing do; end # # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#35 class RuboCop::Cop::RSpec::SpecFilePathFormat < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::TopLevelGroup include ::RuboCop::Cop::RSpec::Namespace include ::RuboCop::Cop::RSpec::FileHelp # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#43 def example_group_arguments(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#48 def metadata_key_value(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#50 def on_top_level_example_group(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#108 def camel_to_snake_case(string); end # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#81 def correct_path_pattern(class_name, arguments); end # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#115 def custom_transform; end # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#62 def ensure_correct_file_path(send_node, class_name, arguments); end # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#98 def expected_path(constant); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#127 def filename_ends_with?(pattern); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#94 def ignore?(method_name); end # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#123 def ignore_metadata; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#73 def ignore_metadata?(arguments); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#119 def ignore_methods?; end # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#88 def name_pattern(method_name); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_format.rb#40 RuboCop::Cop::RSpec::SpecFilePathFormat::MSG = T.let(T.unsafe(nil), String) # Checks that spec file paths suffix are consistent and well-formed. # # @example # # bad # my_class/foo_specorb.rb # describe MyClass # spec/models/user.rb # describe User # spec/models/user_specxrb # describe User # # # good # my_class_spec.rb # describe MyClass # # # good - shared examples are allowed # spec/models/user.rb # shared_examples_for 'foo' # # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_suffix.rb#20 class RuboCop::Cop::RSpec::SpecFilePathSuffix < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::TopLevelGroup include ::RuboCop::Cop::RSpec::FileHelp # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_suffix.rb#26 def on_top_level_example_group(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_suffix.rb#34 def correct_path?; end end # source://rubocop-rspec//lib/rubocop/cop/rspec/spec_file_path_suffix.rb#24 RuboCop::Cop::RSpec::SpecFilePathSuffix::MSG = T.let(T.unsafe(nil), String) # Checks that message expectations do not have a configured response. # # @example # # bad # expect(foo).to receive(:bar).with(42).and_return("hello world") # # # good (without spies) # allow(foo).to receive(:bar).with(42).and_return("hello world") # expect(foo).to receive(:bar).with(42) # # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#16 class RuboCop::Cop::RSpec::StubbedMock < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#42 def configured_response?(param0 = T.unsafe(nil)); end # Match expectation # # @example source that matches # is_expected.to be_in_the_bar # @example source that matches # expect(cocktail).to contain_exactly(:fresh_orange_juice, :campari) # @example source that matches # expect_any_instance_of(Officer).to be_alert # @param node [RuboCop::AST::Node] # @yield [RuboCop::AST::Node] expectation, method name, matcher # # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#61 def expectation(param0 = T.unsafe(nil)); end # Match matcher with a configured response in block-pass # # @example source that matches # receive(:foo, &canned) # @example source that matches # receive_message_chain(:foo, :bar, &canned) # @example source that matches # receive(:foo).with('bar', &canned) # @param node [RuboCop::AST::Node] # @yield [RuboCop::AST::Node] matcher # # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#129 def matcher_with_blockpass(param0 = T.unsafe(nil)); end # Match matcher with a configured response # # @example source that matches # receive(:foo).and_return('bar') # @example source that matches # receive(:lower).and_raise(SomeError) # @example source that matches # receive(:redirect).and_call_original # @param node [RuboCop::AST::Node] # @yield [RuboCop::AST::Node] matcher # # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#81 def matcher_with_configured_response(param0 = T.unsafe(nil)); end # Match matcher with a configured response defined as a hash # # @example source that matches # receive_messages(foo: 'bar', baz: 'qux') # @example source that matches # receive_message_chain(:foo, bar: 'baz') # @param node [RuboCop::AST::Node] # @yield [RuboCop::AST::Node] matcher # # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#108 def matcher_with_hash(param0 = T.unsafe(nil)); end # Match matcher with a return block # # @example source that matches # receive(:foo) { 'bar' } # @param node [RuboCop::AST::Node] # @yield [RuboCop::AST::Node] matcher # # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#93 def matcher_with_return_block(param0 = T.unsafe(nil)); end # Match message expectation matcher # # @example source that matches # receive(:foo) # @example source that matches # receive_message_chain(:foo, :bar) # @example source that matches # receive(:foo).with('bar') # @param node [RuboCop::AST::Node] # @return [Array] matching nodes # # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#34 def message_expectation?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#138 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#155 def msg(method_name); end # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#144 def on_expectation(expectation, method_name, matcher); end # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#161 def replacement(method_name); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#17 RuboCop::Cop::RSpec::StubbedMock::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#136 RuboCop::Cop::RSpec::StubbedMock::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Ensure that subject is defined using subject helper. # # @example # # bad # let(:subject) { foo } # let!(:subject) { foo } # subject(:subject) { foo } # subject!(:subject) { foo } # # # bad # block = -> {} # let(:subject, &block) # # # good # subject(:test_subject) { foo } # # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_declaration.rb#22 class RuboCop::Cop::RSpec::SubjectDeclaration < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_declaration.rb#27 def offensive_subject_declaration?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_declaration.rb#31 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_declaration.rb#40 def message_for(offense); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_declaration.rb#23 RuboCop::Cop::RSpec::SubjectDeclaration::MSG_LET = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_declaration.rb#24 RuboCop::Cop::RSpec::SubjectDeclaration::MSG_REDUNDANT = T.let(T.unsafe(nil), String) # Checks for stubbed test subjects. # # Checks nested subject stubs for innermost subject definition # when subject is also defined in parent example groups. # # @example # # bad # describe Article do # subject(:article) { Article.new } # # it 'indicates that the author is unknown' do # allow(article).to receive(:author).and_return(nil) # expect(article.description).to include('by an unknown author') # end # end # # # bad # describe Article do # subject(:foo) { Article.new } # # context 'nested subject' do # subject(:article) { Article.new } # # it 'indicates that the author is unknown' do # allow(article).to receive(:author).and_return(nil) # expect(article.description).to include('by an unknown author') # end # end # end # # # good # describe Article do # subject(:article) { Article.new(author: nil) } # # it 'indicates that the author is unknown' do # expect(article.description).to include('by an unknown author') # end # end # @see https://robots.thoughtbot.com/don-t-stub-the-system-under-test # @see https://penelope.zone/2015/12/27/introducing-rspec-smells-and-where-to-find-them.html#smell-1-stubjec # # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_stub.rb#50 class RuboCop::Cop::RSpec::SubjectStub < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RSpec::TopLevelGroup # Find a memoized helper # # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_stub.rb#80 def let?(param0 = T.unsafe(nil)); end # Match `allow` and `expect(...).to receive` # # @example source that matches # allow(foo).to receive(:bar) # allow(foo).to receive(:bar).with(1) # allow(foo).to receive(:bar).with(1).and_return(2) # expect(foo).to receive(:bar) # expect(foo).to receive(:bar).with(1) # expect(foo).to receive(:bar).with(1).and_return(2) # # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_stub.rb#97 def message_expectation?(param0 = T.unsafe(nil), param1); end # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_stub.rb#109 def message_expectation_matcher?(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_stub.rb#115 def on_top_level_group(node); end # Find a named or unnamed subject definition # # @example anonymous subject # subject?(parse('subject { foo }').ast) do |name| # name # => :subject # end # @example named subject # subject?(parse('subject(:thing) { foo }').ast) do |name| # name # => :thing # end # @param node [RuboCop::AST::Node] # @yield [Symbol] subject name # # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_stub.rb#71 def subject?(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_stub.rb#126 def find_all_explicit(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_stub.rb#140 def find_subject_expectations(node, subject_names = T.unsafe(nil), &block); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/subject_stub.rb#53 RuboCop::Cop::RSpec::SubjectStub::MSG = T.let(T.unsafe(nil), String) # Helper methods for top level example group cops # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#7 module RuboCop::Cop::RSpec::TopLevelGroup extend ::RuboCop::AST::NodePattern::Macros # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#10 def on_new_investigation; end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#19 def top_level_groups; end private # Dummy methods to be overridden in the consumer # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#27 def on_top_level_example_group(_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#29 def on_top_level_group(_node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#48 def root_node; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#31 def top_level_group?(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#35 def top_level_nodes(node); end end # Description should be descriptive. # # If example group or example contains only `execute string`, numbers # and regular expressions, the description is not clear. # # @example # # bad # describe `time` do # # ... # end # # # bad # context /when foo/ do # # ... # end # # # bad # it 10000 do # # ... # end # # # good # describe Foo do # # ... # end # # # good # describe '#foo' do # # ... # end # # # good # context "when #{foo} is bar" do # # ... # end # # # good # it 'does something' do # # ... # end # # source://rubocop-rspec//lib/rubocop/cop/rspec/undescriptive_literals_description.rb#47 class RuboCop::Cop::RSpec::UndescriptiveLiteralsDescription < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/undescriptive_literals_description.rb#51 def example_groups_or_example?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/undescriptive_literals_description.rb#55 def on_block(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/undescriptive_literals_description.rb#63 def offense?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/undescriptive_literals_description.rb#48 RuboCop::Cop::RSpec::UndescriptiveLiteralsDescription::MSG = T.let(T.unsafe(nil), String) # Checks for a specified error in checking raised errors. # # Enforces one of an Exception type, a string, or a regular # expression to match against the exception message as a parameter # to `raise_error` # # @example # # bad # expect { # raise StandardError.new('error') # }.to raise_error # # # good # expect { # raise StandardError.new('error') # }.to raise_error(StandardError) # # expect { # raise StandardError.new('error') # }.to raise_error('error') # # expect { # raise StandardError.new('error') # }.to raise_error(/err/) # # expect { do_something }.not_to raise_error # # source://rubocop-rspec//lib/rubocop/cop/rspec/unspecified_exception.rb#33 class RuboCop::Cop::RSpec::UnspecifiedException < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/unspecified_exception.rb#38 def empty_raise_error_or_exception(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/unspecified_exception.rb#47 def on_send(node); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/unspecified_exception.rb#59 def block_with_args?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/unspecified_exception.rb#55 def empty_exception_matcher?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/unspecified_exception.rb#34 RuboCop::Cop::RSpec::UnspecifiedException::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/unspecified_exception.rb#35 RuboCop::Cop::RSpec::UnspecifiedException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Helps check offenses with variable definitions # # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/variable.rb#7 module RuboCop::Cop::RSpec::Variable extend ::RuboCop::AST::NodePattern::Macros # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/variable.rb#14 def variable_definition?(param0 = T.unsafe(nil)); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/variable.rb#11 RuboCop::Cop::RSpec::Variable::Helpers = RuboCop::RSpec::Language::Helpers # source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/variable.rb#10 RuboCop::Cop::RSpec::Variable::Subjects = RuboCop::RSpec::Language::Subjects # Checks that memoized helpers names are symbols or strings. # # @example EnforcedStyle: symbols (default) # # bad # subject('user') { create_user } # let('user_name') { 'Adam' } # # # good # subject(:user) { create_user } # let(:user_name) { 'Adam' } # @example EnforcedStyle: strings # # bad # subject(:user) { create_user } # let(:user_name) { 'Adam' } # # # good # subject('user') { create_user } # let('user_name') { 'Adam' } # # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_definition.rb#26 class RuboCop::Cop::RSpec::VariableDefinition < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle include ::RuboCop::Cop::RSpec::Variable include ::RuboCop::Cop::RSpec::InsideExampleGroup extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_definition.rb#34 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_definition.rb#51 def correct_variable(variable); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_definition.rb#67 def string?(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_definition.rb#62 def style_offense?(variable); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_definition.rb#71 def symbol?(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_definition.rb#32 RuboCop::Cop::RSpec::VariableDefinition::MSG = T.let(T.unsafe(nil), String) # Checks that memoized helper names use the configured style. # # Variables can be excluded from checking using the `AllowedPatterns` # option. # # @example EnforcedStyle: snake_case (default) # # bad # subject(:userName1) { 'Adam' } # let(:userName2) { 'Adam' } # # # good # subject(:user_name_1) { 'Adam' } # let(:user_name_2) { 'Adam' } # @example EnforcedStyle: camelCase # # bad # subject(:user_name_1) { 'Adam' } # let(:user_name_2) { 'Adam' } # # # good # subject(:userName1) { 'Adam' } # let(:userName2) { 'Adam' } # @example AllowedPatterns configuration # # rubocop.yml # # RSpec/VariableName: # # EnforcedStyle: snake_case # # AllowedPatterns: # # - ^userFood # @example # # okay because it matches the `^userFood` regex in `AllowedPatterns` # subject(:userFood_1) { 'spaghetti' } # let(:userFood_2) { 'fettuccine' } # # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_name.rb#41 class RuboCop::Cop::RSpec::VariableName < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle include ::RuboCop::Cop::ConfigurableFormatting include ::RuboCop::Cop::ConfigurableNaming include ::RuboCop::Cop::AllowedPattern include ::RuboCop::Cop::RSpec::Variable include ::RuboCop::Cop::RSpec::InsideExampleGroup # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_name.rb#49 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_name.rb#62 def message(style); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/variable_name.rb#47 RuboCop::Cop::RSpec::VariableName::MSG = T.let(T.unsafe(nil), String) # Checks for consistent verified double reference style. # # Only investigates references that are one of the supported styles. # # This cop can be configured in your configuration using the # `EnforcedStyle` option and supports `--auto-gen-config`. # # @example `EnforcedStyle: constant` (default) # # bad # let(:foo) do # instance_double('ClassName', method_name: 'returned_value') # end # # # good # let(:foo) do # instance_double(ClassName, method_name: 'returned_value') # end # @example `EnforcedStyle: string` # # bad # let(:foo) do # instance_double(ClassName, method_name: 'returned_value') # end # # # good # let(:foo) do # instance_double('ClassName', method_name: 'returned_value') # end # @example Reference is not in the supported style list. No enforcement # # # good # let(:foo) do # instance_double(@klass, method_name: 'returned_value') # end # @see https://rspec.info/features/3-12/rspec-mocks/verifying-doubles # # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#43 class RuboCop::Cop::RSpec::VerifiedDoubleReference < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#74 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#66 def verified_double(param0 = T.unsafe(nil)); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#101 def correct_style(offense); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#92 def opposing_style?(class_reference); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#47 RuboCop::Cop::RSpec::VerifiedDoubleReference::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#60 RuboCop::Cop::RSpec::VerifiedDoubleReference::REFERENCE_TYPE_STYLES = T.let(T.unsafe(nil), Hash) # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#49 RuboCop::Cop::RSpec::VerifiedDoubleReference::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set) # Prefer using verifying doubles over normal doubles. # # @example # # bad # let(:foo) do # double(method_name: 'returned value') # end # # # bad # let(:foo) do # double("ClassName", method_name: 'returned value') # end # # # good # let(:foo) do # instance_double("ClassName", method_name: 'returned value') # end # @see https://rspec.info/features/3-12/rspec-mocks/verifying-doubles # # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_doubles.rb#26 class RuboCop::Cop::RSpec::VerifiedDoubles < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_doubles.rb#35 def on_send(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_doubles.rb#31 def unverified_double(param0 = T.unsafe(nil)); end private # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_doubles.rb#46 def symbol?(name); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_doubles.rb#27 RuboCop::Cop::RSpec::VerifiedDoubles::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/verified_doubles.rb#28 RuboCop::Cop::RSpec::VerifiedDoubles::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks void `expect()`. # # @example # # bad # expect(something) # # # good # expect(something).to be(1) # # source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#15 class RuboCop::Cop::RSpec::VoidExpect < ::RuboCop::Cop::RSpec::Base # source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#21 def expect?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#26 def expect_block?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#36 def on_block(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#30 def on_send(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#44 def check_expect(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#50 def void?(expect); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#16 RuboCop::Cop::RSpec::VoidExpect::MSG = T.let(T.unsafe(nil), String) # source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#18 RuboCop::Cop::RSpec::VoidExpect::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for calling a block within a stub. # # @example # # bad # allow(foo).to receive(:bar) { |&block| block.call(1) } # # # good # expect(foo).to receive(:bar).and_yield(1) # # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#15 class RuboCop::Cop::RSpec::Yield < ::RuboCop::Cop::RSpec::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#25 def block_arg(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#28 def block_call?(param0 = T.unsafe(nil), param1); end # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#22 def method_on_stub?(param0); end # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#30 def on_block(node); end private # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#46 def autocorrect(corrector, node, range); end # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#61 def block_range(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#53 def calling_block?(node, block); end # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#73 def convert_block_to_yield(node); end # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#65 def generate_replacement(node); end end # source://rubocop-rspec//lib/rubocop/cop/rspec/yield.rb#19 RuboCop::Cop::RSpec::Yield::MSG = T.let(T.unsafe(nil), String) module RuboCop::Cop::Style; end class RuboCop::Cop::Style::TrailingCommaInArguments < ::RuboCop::Cop::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle include ::RuboCop::Cop::RangeHelp # source://rubocop/1.65.1/lib/rubocop/cop/style/trailing_comma_in_arguments.rb#95 def on_csend(node); end # source://rubocop/1.65.1/lib/rubocop/cop/style/trailing_comma_in_arguments.rb#95 def on_send(node); end class << self # source://rubocop-rspec//lib/rubocop-rspec.rb#63 def autocorrect_incompatible_with; end end end # RuboCop RSpec project namespace # # source://rubocop-rspec//lib/rubocop/rspec.rb#5 module RuboCop::RSpec; end # Shared behavior for aligning braces for single line lets # # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#6 class RuboCop::RSpec::AlignLetBrace include ::RuboCop::RSpec::Language include ::RuboCop::PathUtil include ::RuboCop::Cop::Util # @return [AlignLetBrace] a new instance of AlignLetBrace # # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#10 def initialize(root, token); end # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#21 def indent_for(node); end # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#15 def offending_tokens; end private # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#43 def adjacent_let_chunks; end # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#35 def let_group_for(let); end # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#27 def let_token(node); end # Returns the value of attribute root. # # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#60 def root; end # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#53 def single_line_lets; end # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#31 def target_column_for(let); end # Returns the value of attribute token. # # source://rubocop-rspec//lib/rubocop/rspec/align_let_brace.rb#60 def token; end end # source://rubocop-rspec//lib/rubocop/rspec.rb#7 RuboCop::RSpec::CONFIG_DEFAULT = T.let(T.unsafe(nil), Pathname) # Wrapper for RSpec DSL methods # # source://rubocop-rspec//lib/rubocop/rspec/concept.rb#6 class RuboCop::RSpec::Concept include ::RuboCop::RSpec::Language extend ::RuboCop::AST::NodePattern::Macros extend ::RuboCop::RSpec::Language::NodePattern # @return [Concept] a new instance of Concept # # source://rubocop-rspec//lib/rubocop/rspec/concept.rb#11 def initialize(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/rspec/concept.rb#15 def ==(other); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/rspec/concept.rb#15 def eql?(other); end # source://rubocop-rspec//lib/rubocop/rspec/concept.rb#21 def hash; end # source://rubocop-rspec//lib/rubocop/rspec/concept.rb#25 def to_node; end protected # Returns the value of attribute node. # # source://rubocop-rspec//lib/rubocop/rspec/concept.rb#31 def node; end end # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#5 module RuboCop::RSpec::Corrector; end # Helper methods to move a node # # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#7 class RuboCop::RSpec::Corrector::MoveNode include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::RSpec::FinalEndLocation include ::RuboCop::Cop::RSpec::CommentsHelp # @return [MoveNode] a new instance of MoveNode # # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#14 def initialize(node, corrector, processed_source); end # Returns the value of attribute corrector. # # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#12 def corrector; end # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#27 def move_after(other); end # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#20 def move_before(other); end # Returns the value of attribute original. # # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#12 def original; end # Returns the value of attribute processed_source. # # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#12 def processed_source; end private # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#40 def node_range(node); end # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#44 def node_range_with_surrounding_space(node); end # source://rubocop-rspec//lib/rubocop/rspec/corrector/move_node.rb#36 def source(node); end end # Wrapper for RSpec examples # # source://rubocop-rspec//lib/rubocop/rspec/example.rb#7 class RuboCop::RSpec::Example < ::RuboCop::RSpec::Concept # source://rubocop-rspec//lib/rubocop/rspec/example.rb#28 def definition; end # source://rubocop-rspec//lib/rubocop/rspec/example.rb#16 def doc_string; end # source://rubocop-rspec//lib/rubocop/rspec/example.rb#8 def extract_doc_string(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/example.rb#14 def extract_implementation(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/example.rb#11 def extract_metadata(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/example.rb#24 def implementation; end # source://rubocop-rspec//lib/rubocop/rspec/example.rb#20 def metadata; end end # Wrapper for RSpec example groups # # source://rubocop-rspec//lib/rubocop/rspec/example_group.rb#12 class RuboCop::RSpec::ExampleGroup < ::RuboCop::RSpec::Concept # source://rubocop-rspec//lib/rubocop/rspec/example_group.rb#28 def examples; end # source://rubocop-rspec//lib/rubocop/rspec/example_group.rb#34 def hooks; end # source://rubocop-rspec//lib/rubocop/rspec/example_group.rb#20 def lets; end # Detect if the node is an example group or shared example # # Selectors which indicate that we should stop searching # # source://rubocop-rspec//lib/rubocop/rspec/example_group.rb#13 def scope_change?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/example_group.rb#24 def subjects; end private # source://rubocop-rspec//lib/rubocop/rspec/example_group.rb#56 def find_all(node, predicate); end # Recursively search for predicate within the current scope # # Searches node and halts when a scope change is detected # # @param node [RuboCop::AST::Node] node to recursively search # @param predicate [Symbol] method to call with node as argument # @return [Array] discovered nodes # # source://rubocop-rspec//lib/rubocop/rspec/example_group.rb#50 def find_all_in_scope(node, predicate); end end # Wrapper for RSpec hook # # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#7 class RuboCop::RSpec::Hook < ::RuboCop::RSpec::Concept # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#24 def example?; end # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#8 def extract_metadata(param0 = T.unsafe(nil)); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#18 def knowable_scope?; end # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#38 def metadata; end # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#14 def name; end # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#28 def scope; end private # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#74 def scope_argument; end # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#70 def scope_name; end # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#51 def transform_metadata(meta); end # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#66 def transform_true(node); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/rspec/hook.rb#47 def valid_scope?(node); end end # Because RuboCop doesn't yet support plugins, we have to monkey patch in a # bit of our configuration. # # source://rubocop-rspec//lib/rubocop/rspec/inject.rb#7 module RuboCop::RSpec::Inject class << self # source://rubocop-rspec//lib/rubocop/rspec/inject.rb#8 def defaults!; end end end # Contains node matchers for common RSpec DSL. # # RSpec allows for configuring aliases for commonly used DSL elements, e.g. # example groups and hooks. It is possible to configure RuboCop RSpec to # be able to properly detect these elements in the `RSpec/Language` section # of the RuboCop YAML configuration file. # # In addition to providing useful matchers, this class is responsible for # using the configured aliases. # # source://rubocop-rspec//lib/rubocop/rspec/language/node_pattern.rb#5 module RuboCop::RSpec::Language extend ::RuboCop::AST::NodePattern::Macros extend ::RuboCop::RSpec::Language::NodePattern # source://rubocop-rspec//lib/rubocop/rspec/language.rb#50 def example?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#29 def example_group?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#45 def example_group_with_body?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#26 def explicit_rspec?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#53 def hook?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#69 def include?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#61 def let?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#23 def rspec?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#34 def shared_group?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#38 def spec_group?(param0 = T.unsafe(nil)); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#77 def subject?(param0 = T.unsafe(nil)); end class << self # Returns the value of attribute config. # # source://rubocop-rspec//lib/rubocop/rspec/language.rb#19 def config; end # Sets the attribute config # # @param value the value to set the attribute config to. # # source://rubocop-rspec//lib/rubocop/rspec/language.rb#19 def config=(_arg0); end end end # This is used in Dialect and DescribeClass cops to detect RSpec blocks. # # source://rubocop-rspec//lib/rubocop/rspec/language.rb#205 module RuboCop::RSpec::Language::ALL class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#206 def all(element); end end end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#79 module RuboCop::RSpec::Language::ExampleGroups class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#81 def all(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#91 def focused(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#87 def regular(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#95 def skipped(element); end end end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#101 module RuboCop::RSpec::Language::Examples class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#103 def all(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#114 def focused(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#122 def pending(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#110 def regular(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#118 def skipped(element); end end end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#128 module RuboCop::RSpec::Language::Expectations class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#129 def all(element); end end end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#134 module RuboCop::RSpec::Language::Helpers class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#135 def all(element); end end end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#146 module RuboCop::RSpec::Language::HookScopes class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#148 def all(element); end end end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#147 RuboCop::RSpec::Language::HookScopes::ALL = T.let(T.unsafe(nil), Array) # source://rubocop-rspec//lib/rubocop/rspec/language.rb#140 module RuboCop::RSpec::Language::Hooks class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#141 def all(element); end end end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#153 module RuboCop::RSpec::Language::Includes class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#155 def all(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#164 def context(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#160 def examples(element); end end end # Helper methods to detect RSpec DSL used with send and block # # @deprecated Prefer using Node Pattern directly # Use `'(block (send nil? #Example.all ...) ...)'` instead of # `block_pattern('#Example.all')` # # source://rubocop-rspec//lib/rubocop/rspec/language/node_pattern.rb#10 module RuboCop::RSpec::Language::NodePattern # @deprecated Prefer using Node Pattern directly # # source://rubocop-rspec//lib/rubocop/rspec/language/node_pattern.rb#30 def block_or_numblock_pattern(string); end # @deprecated Prefer using Node Pattern directly # # source://rubocop-rspec//lib/rubocop/rspec/language/node_pattern.rb#18 def block_pattern(string); end # @deprecated Prefer using Node Pattern directly # # source://rubocop-rspec//lib/rubocop/rspec/language/node_pattern.rb#24 def numblock_pattern(string); end # @deprecated Prefer using Node Pattern directly # # source://rubocop-rspec//lib/rubocop/rspec/language/node_pattern.rb#12 def send_pattern(string); end private # source://rubocop-rspec//lib/rubocop/rspec/language/node_pattern.rb#37 def deprecation_warning(method); end end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#170 module RuboCop::RSpec::Language::Runners class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#173 def all(element = T.unsafe(nil)); end end end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#171 RuboCop::RSpec::Language::Runners::ALL = T.let(T.unsafe(nil), Array) # source://rubocop-rspec//lib/rubocop/rspec/language.rb#181 module RuboCop::RSpec::Language::SharedGroups class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#183 def all(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#192 def context(element); end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#188 def examples(element); end end end # source://rubocop-rspec//lib/rubocop/rspec/language.rb#198 module RuboCop::RSpec::Language::Subjects class << self # source://rubocop-rspec//lib/rubocop/rspec/language.rb#199 def all(element); end end end # RuboCop RSpec specific extensions of RuboCop::AST::Node # # source://rubocop-rspec//lib/rubocop/rspec/node.rb#6 module RuboCop::RSpec::Node # In various cops we want to regard const as literal although it's not # strictly literal. # # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/rspec/node.rb#9 def recursive_literal_or_const?; end end # source://rubocop-rspec//lib/rubocop/rspec.rb#6 RuboCop::RSpec::PROJECT_ROOT = T.let(T.unsafe(nil), Pathname) # Version information for the RSpec RuboCop plugin. # # source://rubocop-rspec//lib/rubocop/rspec/version.rb#6 module RuboCop::RSpec::Version; end # source://rubocop-rspec//lib/rubocop/rspec/version.rb#7 RuboCop::RSpec::Version::STRING = T.let(T.unsafe(nil), String) # RSpec example wording rewriter # # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#6 class RuboCop::RSpec::Wording # @return [Wording] a new instance of Wording # # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#14 def initialize(text, ignore:, replace:); end # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#21 def rewrite; end private # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#80 def append_suffix(word, suffix); end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#65 def ignored_word?(word); end # Returns the value of attribute ignores. # # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#39 def ignores; end # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#51 def remove_should_and_pluralize; end # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#41 def replace_prefix(pattern, replacement); end # Returns the value of attribute replacements. # # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#39 def replacements; end # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#69 def substitute(word); end # Returns the value of attribute text. # # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#39 def text; end # @return [Boolean] # # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#47 def uppercase?(word); end end # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#11 RuboCop::RSpec::Wording::ES_SUFFIX_PATTERN = T.let(T.unsafe(nil), Regexp) # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#12 RuboCop::RSpec::Wording::IES_SUFFIX_PATTERN = T.let(T.unsafe(nil), Regexp) # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#8 RuboCop::RSpec::Wording::SHOULDNT_BE_PREFIX = T.let(T.unsafe(nil), Regexp) # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#7 RuboCop::RSpec::Wording::SHOULDNT_PREFIX = T.let(T.unsafe(nil), Regexp) # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#9 RuboCop::RSpec::Wording::WILL_NOT_PREFIX = T.let(T.unsafe(nil), Regexp) # source://rubocop-rspec//lib/rubocop/rspec/wording.rb#10 RuboCop::RSpec::Wording::WONT_PREFIX = T.let(T.unsafe(nil), Regexp)