brew/Library/Homebrew/sorbet/rbi/gems/rubocop-rspec@3.6.0.rbi
Issy Long 836d85277f
Keep only the parts of rubocop.rbi that we actually use
- This file was _massive_ - over 60k lines and we had to bump the file
  size limit for pushes to the repo!
- This was because by default Tapioca, when it encounters a
  `require "rubocop"` during RBI generation, loads all of the cops ever
  because they're all classes inside `RuboCop::Cop`.
- There wasn't an easy way to control this at Tapioca generation time
  (we tried), so now we parse the generated RBI file and delete classes
  and method definitions that we don't use.
- I regenerated the RBIs (`brew tc --update rubocop`) and added new
  things to the allowlist until Sorbet came back green.
- Now the file is ~7k lines and 240K - much better!
2025-07-04 00:27:12 +01:00

7596 lines
225 KiB
Ruby
Generated

# 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#82
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
# 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#19
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#13
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#68
def check_be_nil_style(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/be_nil.rb#60
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)
# 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#104
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#23
class RuboCop::Cop::RSpec::ContainExactly < ::RuboCop::Cop::RSpec::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#29
def on_send(node); end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#45
def autocorrect_for_populated_array(node, corrector); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#37
def check_populated_collection(node); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#26
RuboCop::Cop::RSpec::ContainExactly::MSG = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/contain_exactly.rb#27
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.
#
# If both `Prefixes` and `AllowedPatterns` are empty, this cop will always
# report an offense. So you need to set at least one of them.
#
# 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#61
class RuboCop::Cop::RSpec::ContextWording < ::RuboCop::Cop::RSpec::Base
include ::RuboCop::Cop::AllowedPattern
# source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#69
def context_wording(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#73
def on_block(node); end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#83
def allowed_patterns; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#91
def description(context); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#107
def expect_patterns; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#99
def message; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#87
def prefix_regexes; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#117
def prefixes; end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#65
RuboCop::Cop::RSpec::ContextWording::MSG_ALWAYS = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/context_wording.rb#64
RuboCop::Cop::RSpec::ContextWording::MSG_MATCH = 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<Symbol>]
# @param const [Array<Symbol>]
# @return [Array<Symbol>]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#202
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<Symbol>]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#219
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#187
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#165
def offensive?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#173
def offensive_described_class?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/described_class.rb#161
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
#
# If you were previously using the `RSpec/Capybara/FeatureMethods` cop and
# want to keep disabling all Capybara-specific methods that have the same
# native RSpec method (e.g. are just aliases), use the following config:
#
# RSpec/Dialect:
# PreferredMethods:
# background: :before
# scenario: :it
# xscenario: :xit
# given: :let
# given!: :let!
# feature: :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#58
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#67
def on_send(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/dialect.rb#65
def rspec_method?(param0 = T.unsafe(nil)); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/dialect.rb#62
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<RuboCop::AST::Node>] 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<RuboCop::AST::Node>] 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<RuboCop::AST::Node>] 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<RuboCop::AST::Node>] 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#139
def on_block(node); end
private
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#165
def conditionals_with_examples?(body); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#173
def examples_in_branches?(condition_node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#154
def offensive?(body); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/empty_example_group.rb#180
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#33
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#70
def on_block(node); end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#87
def add_wording_offense(node, message); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#134
def custom_transform; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#97
def docstring(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#138
def ignored_words; end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#142
def insufficient_docstring?(description_node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#146
def insufficient_examples; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#151
def preprocess(message); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/example_wording.rb#107
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#123
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 a receiver and message as method arguments,
# or a block.
#
# 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#51
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#60
def expect_change_with_arguments(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#65
def expect_change_with_block(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#91
def on_block(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#79
def on_send(node); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#55
RuboCop::Cop::RSpec::ExpectChange::MSG_BLOCK = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#56
RuboCop::Cop::RSpec::ExpectChange::MSG_CALL = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/expect_change.rb#57
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
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/expect_in_let.rb#36
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#129
module RuboCop::Cop::RSpec::ExplicitHelper
include ::RuboCop::RSpec::Language
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#190
def predicate_matcher?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#203
def predicate_matcher_block?(param0 = T.unsafe(nil)); end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#143
def allowed_explicit_matchers; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#147
def check_explicit(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#227
def corrector_explicit(corrector, to_node, actual, matcher, block_child); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#183
def heredoc_argument?(matcher); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#221
def message_explicit(matcher); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#234
def move_predicate(corrector, actual, matcher, block_child); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#212
def predicate_matcher_name?(name); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#170
def replaceable_matcher?(matcher); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#261
def replacement_matcher(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#244
def to_predicate_method(matcher); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#179
def uncorrectable_matcher?(node, matcher); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#135
RuboCop::Cop::RSpec::ExplicitHelper::BUILT_IN_MATCHERS = T.let(T.unsafe(nil), Array)
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#133
RuboCop::Cop::RSpec::ExplicitHelper::MSG_EXPLICIT = T.let(T.unsafe(nil), String)
# 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
# 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
# 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#46
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#53
def focusable_selector?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#71
def focused_block?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#65
def metadata(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#75
def on_send(node); end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#108
def correct_send(corrector, focus); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#89
def on_focused_block(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#95
def on_metadata(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#101
def with_surrounding(focus); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/focus.rb#50
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#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#78
def range_for_is_expected(source_map); 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#167
def example_of(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#143
def implicit_subject_in_non_its?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#147
def implicit_subject_in_non_its_and_non_single_line?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#151
def implicit_subject_in_non_its_and_non_single_statement?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#126
def invalid?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#155
def its?(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#117
def message(_node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#159
def single_line?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/implicit_subject.rb#163
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)
# Checks for usage of `include_examples`.
#
# `include_examples`, unlike `it_behaves_like`, does not create its
# own context. As such, using `subject`, `let`, `before`/`after`, etc.
# within shared examples included with `include_examples` can have
# unexpected behavior and side effects.
#
# Prefer using `it_behaves_like` instead.
#
# @example
# # bad
# include_examples 'examples'
#
# # good
# it_behaves_like 'examples'
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/include_examples.rb#22
class RuboCop::Cop::RSpec::IncludeExamples < ::RuboCop::Cop::RSpec::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop-rspec//lib/rubocop/cop/rspec/include_examples.rb#29
def on_send(node); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/include_examples.rb#25
RuboCop::Cop::RSpec::IncludeExamples::MSG = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/include_examples.rb#27
RuboCop::Cop::RSpec::IncludeExamples::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#107
def allowed_identifiers; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#101
def cop_config_patterns_values; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#81
def filter_indexed_lets(candidates); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#90
def indexed_let?(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#97
def let_name_stripped_index(node); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/indexed_let.rb#78
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#76
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#45
def be_bool?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#50
def be_boolthy?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#31
def predicate_in_actual?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#54
def boolean_matcher?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#40
def cannot_replace_predicate?(send_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#66
def message_inflected(predicate); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#62
def predicate?(sym); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#89
def remove_predicate(corrector, predicate); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#100
def rewrite_matcher(corrector, predicate, matcher); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#72
def to_predicate_matcher(name); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#111
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#26
class RuboCop::Cop::RSpec::MatchArray < ::RuboCop::Cop::RSpec::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#33
def match_array_with_empty_array?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#37
def on_send(node); end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#46
def check_populated_array(node); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#29
RuboCop::Cop::RSpec::MatchArray::MSG = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/match_array.rb#30
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#61
def autocorrect_pair(corrector, node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#66
def autocorrect_symbol(corrector, node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#73
def bad_metadata_pair?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#77
def bad_metadata_symbol?(_node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#81
def format_symbol_to_pair_source(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#85
def insert_pair(corrector, node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#96
def insert_pair_as_last_argument(corrector, node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#105
def insert_pair_to_empty_hash_metadata(corrector, node, hash_node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#112
def insert_pair_to_non_empty_hash_metadata(corrector, node, hash_node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#119
def insert_symbol(corrector, node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#126
def message_for_style; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#133
def on_metadata_pair(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#141
def on_metadata_symbol(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#149
def remove_pair(corrector, node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#159
def remove_pair_following(corrector, node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#171
def remove_pair_preceding(corrector, node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/metadata_style.rb#183
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 if `.to`, `not_to` or `to_not` are used.
#
# The RSpec::Expectations::ExpectationTarget must use `to`, `not_to` or
# `to_not` to run. Therefore, this cop checks if other methods are used.
#
# @example
# # bad
# expect(something).kind_of? Foo
# is_expected == 42
# expect{something}.eq? BarError
#
# # good
# expect(something).to be_a Foo
# is_expected.to eq 42
# expect{something}.to raise_error BarError
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/missing_expectation_target_method.rb#22
class RuboCop::Cop::RSpec::MissingExpectationTargetMethod < ::RuboCop::Cop::RSpec::Base
# source://rubocop-rspec//lib/rubocop/cop/rspec/missing_expectation_target_method.rb#27
def expect?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/missing_expectation_target_method.rb#35
def expect_block?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/missing_expectation_target_method.rb#40
def expectation_without_runner?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/missing_expectation_target_method.rb#44
def on_send(node); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/missing_expectation_target_method.rb#23
RuboCop::Cop::RSpec::MissingExpectationTargetMethod::MSG = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/missing_expectation_target_method.rb#24
RuboCop::Cop::RSpec::MissingExpectationTargetMethod::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# 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
# 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/1.75.6/lib/rubocop/cop/exclude_limit.rb#11
def max=(value); 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#72
RuboCop::Cop::RSpec::MultipleExpectations::ANYTHING = T.let(T.unsafe(nil), Proc)
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#70
RuboCop::Cop::RSpec::MultipleExpectations::MSG = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#73
RuboCop::Cop::RSpec::MultipleExpectations::TRUE_NODE = 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::RSpec::Variable
# source://rubocop/1.75.6/lib/rubocop/cop/exclude_limit.rb#11
def max=(value); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#91
def on_block(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#102
def on_new_investigation; end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#111
def all_helpers(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#141
def allow_subject?; end
# Returns the value of attribute example_group_memoized_helpers.
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#109
def example_group_memoized_helpers; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#116
def helpers(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#137
def max; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#127
def variable_nodes(node); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#87
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#123
def allow_explicit_subject?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#127
def always?; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#117
def check_explicit_subject(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#150
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#131
def named_only?(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#142
def nearest_subject(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/named_subject.rb#136
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<String>]
#
# 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::RSpec::TopLevelGroup
# source://rubocop/1.75.6/lib/rubocop/cop/exclude_limit.rb#11
def max=(value); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#107
def on_top_level_group(node); end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#157
def allowed_groups; end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#134
def count_up_nesting?(node, example_group); end
# @yield [node, nesting]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#119
def find_nested_example_groups(node, nesting: T.unsafe(nil), &block); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#144
def max_nesting; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#148
def max_nesting_config; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#140
def message(nesting); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#99
RuboCop::Cop::RSpec::NestedGroups::DEPRECATED_MAX_KEY = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#101
RuboCop::Cop::RSpec::NestedGroups::DEPRECATION_WARNING = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#97
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#81
def metadata_without_reason?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#96
def on_send(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#92
def skipped_by_example_group_method?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#71
def skipped_by_example_method?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#76
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#117
def block_node_example_group?(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#129
def on_pending_by_metadata(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#145
def on_skipped_by_example_group_method(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#135
def on_skipped_by_example_method(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#123
def on_skipped_by_in_example_method(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/pending_without_reason.rb#110
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#324
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#345
def on_block(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#332
def on_send(node); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/predicate_matcher.rb#330
RuboCop::Cop::RSpec::PredicateMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# 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#154
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#31
def on_send(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/remove_const.rb#26
def remove_const(param0 = T.unsafe(nil)); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/remove_const.rb#21
RuboCop::Cop::RSpec::RemoveConst::MSG = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/remove_const.rb#23
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` and `after` hooks when possible.
# However, `around` hooks are allowed to be defined multiple times,
# as unifying them would typically make the code harder to read.
#
# @example
# # bad
# describe Foo do
# before { setup1 }
# before { setup2 }
# end
#
# # good
# describe Foo do
# before do
# setup1
# setup2
# end
# end
#
# # good
# describe Foo do
# around { |example| before1; example.call; after1 }
# around { |example| before2; example.call; after2 }
# end
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#33
class RuboCop::Cop::RSpec::ScatteredSetup < ::RuboCop::Cop::RSpec::Base
include ::RuboCop::Cop::RSpec::FinalEndLocation
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#41
def on_block(node); end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#84
def autocorrect(corrector, first_occurrence, occurrence); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#69
def lines_msg(numbers); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#77
def message(occurrences, occurrence); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#56
def repeated_hooks(node); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/scattered_setup.rb#38
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#76
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#82
def key_to_arg(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/single_argument_message_chain.rb#86
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<RuboCop::AST::Node>] 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.
#
# Only the trailing metadata is sorted.
#
# @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'
#
# # good, trailing metadata is sorted
# describe 'Something', 'description', :a, :b, :z
# context 'Something', :z, variable, :a, :b
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#24
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#32
def match_ambiguous_trailing_metadata?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#36
def on_metadata(args, hash); end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#58
def crime_scene(symbols, pairs); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#54
def last_arg_could_be_a_hash?(args); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#67
def replacement(symbols, pairs); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#75
def sort_pairs(pairs); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#79
def sort_symbols(symbols); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#71
def sorted?(symbols, pairs); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#49
def trailing_symbols(args); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/sort_metadata.rb#29
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#43
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#62
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#130
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#82
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#109
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#94
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<RuboCop::AST::Node>] matching nodes
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#35
def message_expectation?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#137
def on_send(node); end
private
# source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#156
def msg(method_name); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#145
def on_expectation(expectation, method_name, matcher); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/stubbed_mock.rb#164
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#19
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#14
def on_new_investigation; end
# source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#23
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#31
def on_top_level_example_group(_node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#33
def on_top_level_group(_node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#55
def root_node; end
# @deprecated All callers of this method have been removed.
# @private
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#37
def top_level_group?(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#42
def top_level_nodes(node); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/mixin/top_level_group.rb#10
RuboCop::Cop::RSpec::TopLevelGroup::DEPRECATED_MODULE_METHOD_WARNING = T.let(T.unsafe(nil), String)
# 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#42
def expect_to?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/unspecified_exception.rb#46
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/unspecified_exception.rb#54
def empty_exception_matcher?(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/unspecified_exception.rb#64
def find_expect_to(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#36
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.
#
# @example
# # 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 any dynamic variable. 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#32
class RuboCop::Cop::RSpec::VerifiedDoubleReference < ::RuboCop::Cop::RSpec::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#66
def autocorrect(corrector, node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#58
def on_send(node); end
# source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#50
def verified_double(param0 = T.unsafe(nil)); end
end
# source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#35
RuboCop::Cop::RSpec::VerifiedDoubleReference::MSG = T.let(T.unsafe(nil), String)
# source://rubocop-rspec//lib/rubocop/cop/rspec/verified_double_reference.rb#38
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#37
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#46
def check_expect(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#59
def inside_example?(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/cop/rspec/void_expect.rb#52
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)
# 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
# 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
# @return [Concept] a new instance of Concept
#
# source://rubocop-rspec//lib/rubocop/rspec/concept.rb#10
def initialize(node); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/rspec/concept.rb#14
def ==(other); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/rspec/concept.rb#14
def eql?(other); end
# source://rubocop-rspec//lib/rubocop/rspec/concept.rb#20
def hash; end
# source://rubocop-rspec//lib/rubocop/rspec/concept.rb#24
def to_node; end
protected
# Returns the value of attribute node.
#
# source://rubocop-rspec//lib/rubocop/rspec/concept.rb#30
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#6
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#6
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<RuboCop::AST::Node>] 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#6
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#76
def scope_argument; end
# source://rubocop-rspec//lib/rubocop/rspec/hook.rb#72
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
# 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.rb#14
module RuboCop::RSpec::Language
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#49
def example?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#28
def example_group?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#44
def example_group_with_body?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#25
def explicit_rspec?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#52
def hook?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#65
def include?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#57
def let?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#22
def rspec?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#33
def shared_group?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#37
def spec_group?(param0 = T.unsafe(nil)); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#73
def subject?(param0 = T.unsafe(nil)); end
class << self
# Returns the value of attribute config.
#
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#18
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#18
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#201
module RuboCop::RSpec::Language::ALL
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#202
def all(element); end
end
end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#75
module RuboCop::RSpec::Language::ExampleGroups
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#77
def all(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#87
def focused(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#83
def regular(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#91
def skipped(element); end
end
end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#97
module RuboCop::RSpec::Language::Examples
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#99
def all(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#110
def focused(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#118
def pending(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#106
def regular(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#114
def skipped(element); end
end
end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#124
module RuboCop::RSpec::Language::Expectations
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#125
def all(element); end
end
end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#130
module RuboCop::RSpec::Language::Helpers
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#131
def all(element); end
end
end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#142
module RuboCop::RSpec::Language::HookScopes
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#144
def all(element); end
end
end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#143
RuboCop::RSpec::Language::HookScopes::ALL = T.let(T.unsafe(nil), Array)
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#136
module RuboCop::RSpec::Language::Hooks
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#137
def all(element); end
end
end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#149
module RuboCop::RSpec::Language::Includes
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#151
def all(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#160
def context(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#156
def examples(element); end
end
end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#166
module RuboCop::RSpec::Language::Runners
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#169
def all(element = T.unsafe(nil)); end
end
end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#167
RuboCop::RSpec::Language::Runners::ALL = T.let(T.unsafe(nil), Array)
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#177
module RuboCop::RSpec::Language::SharedGroups
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#179
def all(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#188
def context(element); end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#184
def examples(element); end
end
end
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#194
module RuboCop::RSpec::Language::Subjects
class << self
# source://rubocop-rspec//lib/rubocop/rspec/language.rb#195
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
# A plugin that integrates RuboCop RSpec with RuboCop's plugin system.
#
# source://rubocop-rspec//lib/rubocop/rspec/plugin.rb#8
class RuboCop::RSpec::Plugin < ::LintRoller::Plugin
# :nocov:
#
# source://rubocop-rspec//lib/rubocop/rspec/plugin.rb#10
def about; end
# source://rubocop-rspec//lib/rubocop/rspec/plugin.rb#24
def rules(_context); end
# :nocov:
#
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/rspec/plugin.rb#20
def supported?(context); end
end
# 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#20
def rewrite; end
private
# source://rubocop-rspec//lib/rubocop/rspec/wording.rb#78
def append_suffix(word, suffix); end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/rspec/wording.rb#63
def ignored_word?(word); end
# Returns the value of attribute ignores.
#
# source://rubocop-rspec//lib/rubocop/rspec/wording.rb#37
def ignores; end
# source://rubocop-rspec//lib/rubocop/rspec/wording.rb#49
def remove_should_and_pluralize; end
# source://rubocop-rspec//lib/rubocop/rspec/wording.rb#39
def replace_prefix(pattern, replacement); end
# Returns the value of attribute replacements.
#
# source://rubocop-rspec//lib/rubocop/rspec/wording.rb#37
def replacements; end
# source://rubocop-rspec//lib/rubocop/rspec/wording.rb#67
def substitute(word); end
# Returns the value of attribute text.
#
# source://rubocop-rspec//lib/rubocop/rspec/wording.rb#37
def text; end
# @return [Boolean]
#
# source://rubocop-rspec//lib/rubocop/rspec/wording.rb#45
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)