brew vendor-gems: commit updates.

This commit is contained in:
BrewTestBot 2022-01-24 18:10:56 +00:00
parent 9b515f37c1
commit 76576ad869
No known key found for this signature in database
GPG Key ID: 82D7D104050B0F0F
118 changed files with 185 additions and 144 deletions

View File

@ -89,7 +89,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/unicode-display_width
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-1.25.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-1.25.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-performance-1.13.2/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-performance-1.13.2/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rails-2.13.2/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rails-2.13.2/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rspec-2.7.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rspec-2.8.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-sorbet-0.6.5/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-sorbet-0.6.5/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-macho-3.0.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-macho-3.0.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/simplecov-html-0.12.3/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/simplecov-html-0.12.3/lib"

View File

@ -1,6 +1,7 @@
--- ---
RSpec: RSpec:
Enabled: true Enabled: true
StyleGuideBaseURL: https://rspec.rubystyle.guide
Include: &1 Include: &1
- "**/*_spec.rb" - "**/*_spec.rb"
- "**/spec/**/*" - "**/spec/**/*"
@ -113,37 +114,39 @@ RSpec/AlignLeftLetBrace:
Description: Checks that left braces for adjacent single line lets are aligned. Description: Checks that left braces for adjacent single line lets are aligned.
Enabled: false Enabled: false
VersionAdded: '1.16' VersionAdded: '1.16'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AlignLeftLetBrace Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AlignLeftLetBrace
RSpec/AlignRightLetBrace: RSpec/AlignRightLetBrace:
Description: Checks that right braces for adjacent single line lets are aligned. Description: Checks that right braces for adjacent single line lets are aligned.
Enabled: false Enabled: false
VersionAdded: '1.16' VersionAdded: '1.16'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AlignRightLetBrace Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AlignRightLetBrace
RSpec/AnyInstance: RSpec/AnyInstance:
Description: Check that instances are not being stubbed globally. Description: Check that instances are not being stubbed globally.
Enabled: true Enabled: true
VersionAdded: '1.4' VersionAdded: '1.4'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AnyInstance StyleGuide: https://rspec.rubystyle.guide/#any_instance_of
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AnyInstance
RSpec/AroundBlock: RSpec/AroundBlock:
Description: Checks that around blocks actually run the test. Description: Checks that around blocks actually run the test.
Enabled: true Enabled: true
VersionAdded: '1.11' VersionAdded: '1.11'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AroundBlock Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AroundBlock
RSpec/Be: RSpec/Be:
Description: Check for expectations where `be` is used without argument. Description: Check for expectations where `be` is used without argument.
Enabled: true Enabled: true
VersionAdded: '1.25' VersionAdded: '1.25'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Be StyleGuide: https://rspec.rubystyle.guide/#be-matcher
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Be
RSpec/BeEql: RSpec/BeEql:
Description: Check for expectations where `be(...)` can replace `eql(...)`. Description: Check for expectations where `be(...)` can replace `eql(...)`.
Enabled: true Enabled: true
VersionAdded: '1.7' VersionAdded: '1.7'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeEql Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeEql
RSpec/BeforeAfterAll: RSpec/BeforeAfterAll:
Description: Check that before/after(:all) isn't being used. Description: Check that before/after(:all) isn't being used.
@ -153,13 +156,15 @@ RSpec/BeforeAfterAll:
- spec/rails_helper.rb - spec/rails_helper.rb
- spec/support/**/*.rb - spec/support/**/*.rb
VersionAdded: '1.12' VersionAdded: '1.12'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeforeAfterAll StyleGuide: https://rspec.rubystyle.guide/#avoid-hooks-with-context-scope
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeforeAfterAll
RSpec/ContextMethod: RSpec/ContextMethod:
Description: "`context` should not be used for specifying methods." Description: "`context` should not be used for specifying methods."
Enabled: true Enabled: true
VersionAdded: '1.36' VersionAdded: '1.36'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContextMethod StyleGuide: https://rspec.rubystyle.guide/#example-group-naming
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContextMethod
RSpec/ContextWording: RSpec/ContextWording:
Description: Checks that `context` docstring starts with an allowed prefix. Description: Checks that `context` docstring starts with an allowed prefix.
@ -170,7 +175,8 @@ RSpec/ContextWording:
- without - without
VersionAdded: '1.20' VersionAdded: '1.20'
VersionChanged: 1.20.1 VersionChanged: 1.20.1
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContextWording StyleGuide: https://rspec.rubystyle.guide/#context-descriptions
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContextWording
RSpec/DescribeClass: RSpec/DescribeClass:
Description: Check that the first argument to the top-level describe is a constant. Description: Check that the first argument to the top-level describe is a constant.
@ -199,19 +205,19 @@ RSpec/DescribeClass:
- task - task
VersionAdded: '1.0' VersionAdded: '1.0'
VersionChanged: '2.7' VersionChanged: '2.7'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeClass Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeClass
RSpec/DescribeMethod: RSpec/DescribeMethod:
Description: Checks that the second argument to `describe` specifies a method. Description: Checks that the second argument to `describe` specifies a method.
Enabled: true Enabled: true
VersionAdded: '1.0' VersionAdded: '1.0'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeMethod Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeMethod
RSpec/DescribeSymbol: RSpec/DescribeSymbol:
Description: Avoid describing symbols. Description: Avoid describing symbols.
Enabled: true Enabled: true
VersionAdded: '1.15' VersionAdded: '1.15'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeSymbol Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeSymbol
RSpec/DescribedClass: RSpec/DescribedClass:
Description: Checks that tests use `described_class`. Description: Checks that tests use `described_class`.
@ -224,64 +230,69 @@ RSpec/DescribedClass:
SafeAutoCorrect: false SafeAutoCorrect: false
VersionAdded: '1.0' VersionAdded: '1.0'
VersionChanged: '1.11' VersionChanged: '1.11'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribedClass Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribedClass
RSpec/DescribedClassModuleWrapping: RSpec/DescribedClassModuleWrapping:
Description: Avoid opening modules and defining specs within them. Description: Avoid opening modules and defining specs within them.
Enabled: false Enabled: false
VersionAdded: '1.37' VersionAdded: '1.37'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribedClassModuleWrapping Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribedClassModuleWrapping
RSpec/Dialect: RSpec/Dialect:
Description: This cop enforces custom RSpec dialects. Description: This cop enforces custom RSpec dialects.
Enabled: false Enabled: false
PreferredMethods: {} PreferredMethods: {}
VersionAdded: '1.33' VersionAdded: '1.33'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Dialect Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Dialect
RSpec/EmptyExampleGroup: RSpec/EmptyExampleGroup:
Description: Checks if an example group does not include any tests. Description: Checks if an example group does not include any tests.
Enabled: true Enabled: true
VersionAdded: '1.7' VersionAdded: '1.7'
VersionChanged: '2.0' VersionChanged: '2.0'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyExampleGroup Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyExampleGroup
RSpec/EmptyHook: RSpec/EmptyHook:
Description: Checks for empty before and after hooks. Description: Checks for empty before and after hooks.
Enabled: true Enabled: true
VersionAdded: '1.39' VersionAdded: '1.39'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyHook Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyHook
RSpec/EmptyLineAfterExample: RSpec/EmptyLineAfterExample:
Description: Checks if there is an empty line after example blocks. Description: Checks if there is an empty line after example blocks.
Enabled: true Enabled: true
AllowConsecutiveOneLiners: true AllowConsecutiveOneLiners: true
VersionAdded: '1.36' VersionAdded: '1.36'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExample StyleGuide: https://rspec.rubystyle.guide/#empty-lines-around-examples
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExample
RSpec/EmptyLineAfterExampleGroup: RSpec/EmptyLineAfterExampleGroup:
Description: Checks if there is an empty line after example group blocks. Description: Checks if there is an empty line after example group blocks.
Enabled: true Enabled: true
VersionAdded: '1.27' VersionAdded: '1.27'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExampleGroup StyleGuide: https://rspec.rubystyle.guide/#empty-lines-between-describes
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExampleGroup
RSpec/EmptyLineAfterFinalLet: RSpec/EmptyLineAfterFinalLet:
Description: Checks if there is an empty line after the last let block. Description: Checks if there is an empty line after the last let block.
Enabled: true Enabled: true
VersionAdded: '1.14' VersionAdded: '1.14'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterFinalLet StyleGuide: https://rspec.rubystyle.guide/#empty-line-after-let
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterFinalLet
RSpec/EmptyLineAfterHook: RSpec/EmptyLineAfterHook:
Description: Checks if there is an empty line after hook blocks. Description: Checks if there is an empty line after hook blocks.
Enabled: true Enabled: true
VersionAdded: '1.27' VersionAdded: '1.27'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterHook StyleGuide: https://rspec.rubystyle.guide/#empty-line-after-let
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterHook
RSpec/EmptyLineAfterSubject: RSpec/EmptyLineAfterSubject:
Description: Checks if there is an empty line after subject block. Description: Checks if there is an empty line after subject block.
Enabled: true Enabled: true
VersionAdded: '1.14' VersionAdded: '1.14'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterSubject StyleGuide: https://rspec.rubystyle.guide/#empty-line-after-let
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterSubject
RSpec/ExampleLength: RSpec/ExampleLength:
Description: Checks for long examples. Description: Checks for long examples.
@ -290,7 +301,7 @@ RSpec/ExampleLength:
CountAsOne: [] CountAsOne: []
VersionAdded: '1.5' VersionAdded: '1.5'
VersionChanged: '2.3' VersionChanged: '2.3'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleLength Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleLength
RSpec/ExampleWithoutDescription: RSpec/ExampleWithoutDescription:
Description: Checks for examples without a description. Description: Checks for examples without a description.
@ -301,13 +312,13 @@ RSpec/ExampleWithoutDescription:
- single_line_only - single_line_only
- disallow - disallow
VersionAdded: '1.22' VersionAdded: '1.22'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWithoutDescription Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWithoutDescription
RSpec/ExcessiveDocstringSpacing: RSpec/ExcessiveDocstringSpacing:
Description: Checks for excessive whitespace in example descriptions. Description: Checks for excessive whitespace in example descriptions.
Enabled: pending Enabled: pending
VersionAdded: '2.5' VersionAdded: '2.5'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExcessiveDocstringSpacing Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExcessiveDocstringSpacing
RSpec/ExampleWording: RSpec/ExampleWording:
Description: Checks for common mistakes in example descriptions. Description: Checks for common mistakes in example descriptions.
@ -320,7 +331,8 @@ RSpec/ExampleWording:
IgnoredWords: [] IgnoredWords: []
VersionAdded: '1.0' VersionAdded: '1.0'
VersionChanged: '1.2' VersionChanged: '1.2'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWording StyleGuide: https://rspec.rubystyle.guide/#should-in-example-docstrings
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWording
RSpec/ExpectActual: RSpec/ExpectActual:
Description: Checks for `expect(...)` calls containing literal values. Description: Checks for `expect(...)` calls containing literal values.
@ -328,7 +340,7 @@ RSpec/ExpectActual:
Exclude: Exclude:
- spec/routing/**/* - spec/routing/**/*
VersionAdded: '1.7' VersionAdded: '1.7'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectActual Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectActual
RSpec/ExpectChange: RSpec/ExpectChange:
Description: Checks for consistent style of change matcher. Description: Checks for consistent style of change matcher.
@ -340,19 +352,19 @@ RSpec/ExpectChange:
SafeAutoCorrect: false SafeAutoCorrect: false
VersionAdded: '1.22' VersionAdded: '1.22'
VersionChanged: '2.5' VersionChanged: '2.5'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectChange Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectChange
RSpec/ExpectInHook: RSpec/ExpectInHook:
Description: Do not use `expect` in hooks such as `before`. Description: Do not use `expect` in hooks such as `before`.
Enabled: true Enabled: true
VersionAdded: '1.16' VersionAdded: '1.16'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInHook Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInHook
RSpec/ExpectOutput: RSpec/ExpectOutput:
Description: Checks for opportunities to use `expect { ... }.to output`. Description: Checks for opportunities to use `expect { ... }.to output`.
Enabled: true Enabled: true
VersionAdded: '1.10' VersionAdded: '1.10'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectOutput Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectOutput
RSpec/FilePath: RSpec/FilePath:
Description: Checks that spec file paths are consistent and well-formed. Description: Checks that spec file paths are consistent and well-formed.
@ -367,14 +379,14 @@ RSpec/FilePath:
SpecSuffixOnly: false SpecSuffixOnly: false
VersionAdded: '1.2' VersionAdded: '1.2'
VersionChanged: '1.40' VersionChanged: '1.40'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FilePath Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FilePath
RSpec/Focus: RSpec/Focus:
Description: Checks if examples are focused. Description: Checks if examples are focused.
Enabled: true Enabled: true
VersionAdded: '1.5' VersionAdded: '1.5'
VersionChanged: '2.1' VersionChanged: '2.1'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Focus Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Focus
RSpec/HookArgument: RSpec/HookArgument:
Description: Checks the arguments passed to `before`, `around`, and `after`. Description: Checks the arguments passed to `before`, `around`, and `after`.
@ -385,25 +397,27 @@ RSpec/HookArgument:
- each - each
- example - example
VersionAdded: '1.7' VersionAdded: '1.7'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HookArgument StyleGuide: https://rspec.rubystyle.guide/#redundant-beforeeach
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HookArgument
RSpec/HooksBeforeExamples: RSpec/HooksBeforeExamples:
Description: Checks for before/around/after hooks that come after an example. Description: Checks for before/around/after hooks that come after an example.
Enabled: true Enabled: true
VersionAdded: '1.29' VersionAdded: '1.29'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HooksBeforeExamples Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HooksBeforeExamples
RSpec/IdenticalEqualityAssertion: RSpec/IdenticalEqualityAssertion:
Description: Checks for equality assertions with identical expressions on both sides. Description: Checks for equality assertions with identical expressions on both sides.
Enabled: pending Enabled: pending
VersionAdded: '2.4' VersionAdded: '2.4'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IdenticalEqualityAssertion Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IdenticalEqualityAssertion
RSpec/ImplicitBlockExpectation: RSpec/ImplicitBlockExpectation:
Description: Check that implicit block expectation syntax is not used. Description: Check that implicit block expectation syntax is not used.
Enabled: true Enabled: true
VersionAdded: '1.35' VersionAdded: '1.35'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitBlockExpectation StyleGuide: https://rspec.rubystyle.guide/#implicit-block-expectations
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitBlockExpectation
RSpec/ImplicitExpect: RSpec/ImplicitExpect:
Description: Check that a consistent implicit expectation style is used. Description: Check that a consistent implicit expectation style is used.
@ -413,7 +427,8 @@ RSpec/ImplicitExpect:
- is_expected - is_expected
- should - should
VersionAdded: '1.8' VersionAdded: '1.8'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitExpect StyleGuide: https://rspec.rubystyle.guide/#use-expect
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitExpect
RSpec/ImplicitSubject: RSpec/ImplicitSubject:
Description: Checks for usage of implicit subject (`is_expected` / `should`). Description: Checks for usage of implicit subject (`is_expected` / `should`).
@ -425,13 +440,13 @@ RSpec/ImplicitSubject:
- disallow - disallow
VersionAdded: '1.29' VersionAdded: '1.29'
VersionChanged: '1.30' VersionChanged: '1.30'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitSubject Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitSubject
RSpec/InstanceSpy: RSpec/InstanceSpy:
Description: Checks for `instance_double` used with `have_received`. Description: Checks for `instance_double` used with `have_received`.
Enabled: true Enabled: true
VersionAdded: '1.12' VersionAdded: '1.12'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceSpy Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceSpy
RSpec/InstanceVariable: RSpec/InstanceVariable:
Description: Checks for instance variable usage in specs. Description: Checks for instance variable usage in specs.
@ -439,7 +454,8 @@ RSpec/InstanceVariable:
AssignmentOnly: false AssignmentOnly: false
VersionAdded: '1.0' VersionAdded: '1.0'
VersionChanged: '1.7' VersionChanged: '1.7'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceVariable StyleGuide: https://rspec.rubystyle.guide/#instance-variables
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceVariable
RSpec/ItBehavesLike: RSpec/ItBehavesLike:
Description: Checks that only one `it_behaves_like` style is used. Description: Checks that only one `it_behaves_like` style is used.
@ -449,45 +465,47 @@ RSpec/ItBehavesLike:
- it_behaves_like - it_behaves_like
- it_should_behave_like - it_should_behave_like
VersionAdded: '1.13' VersionAdded: '1.13'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ItBehavesLike Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ItBehavesLike
RSpec/IteratedExpectation: RSpec/IteratedExpectation:
Description: Check that `all` matcher is used instead of iterating over an array. Description: Check that `all` matcher is used instead of iterating over an array.
Enabled: true Enabled: true
VersionAdded: '1.14' VersionAdded: '1.14'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IteratedExpectation Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IteratedExpectation
RSpec/LeadingSubject: RSpec/LeadingSubject:
Description: Enforce that subject is the first definition in the test. Description: Enforce that subject is the first definition in the test.
Enabled: true Enabled: true
VersionAdded: '1.7' VersionAdded: '1.7'
VersionChanged: '1.14' VersionChanged: '1.14'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeadingSubject StyleGuide: https://rspec.rubystyle.guide/#leading-subject
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeadingSubject
RSpec/LeakyConstantDeclaration: RSpec/LeakyConstantDeclaration:
Description: Checks that no class, module, or constant is declared. Description: Checks that no class, module, or constant is declared.
Enabled: true Enabled: true
VersionAdded: '1.35' VersionAdded: '1.35'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeakyConstantDeclaration StyleGuide: https://rspec.rubystyle.guide/#declare-constants
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeakyConstantDeclaration
RSpec/LetBeforeExamples: RSpec/LetBeforeExamples:
Description: Checks for `let` definitions that come after an example. Description: Checks for `let` definitions that come after an example.
Enabled: true Enabled: true
VersionAdded: '1.16' VersionAdded: '1.16'
VersionChanged: '1.22' VersionChanged: '1.22'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetBeforeExamples Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetBeforeExamples
RSpec/LetSetup: RSpec/LetSetup:
Description: Checks unreferenced `let!` calls being used for test setup. Description: Checks unreferenced `let!` calls being used for test setup.
Enabled: true Enabled: true
VersionAdded: '1.7' VersionAdded: '1.7'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetSetup Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetSetup
RSpec/MessageChain: RSpec/MessageChain:
Description: Check that chains of messages are not being stubbed. Description: Check that chains of messages are not being stubbed.
Enabled: true Enabled: true
VersionAdded: '1.7' VersionAdded: '1.7'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageChain Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageChain
RSpec/MessageExpectation: RSpec/MessageExpectation:
Description: Checks for consistent message expectation style. Description: Checks for consistent message expectation style.
@ -498,7 +516,7 @@ RSpec/MessageExpectation:
- expect - expect
VersionAdded: '1.7' VersionAdded: '1.7'
VersionChanged: '1.8' VersionChanged: '1.8'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageExpectation Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageExpectation
RSpec/MessageSpies: RSpec/MessageSpies:
Description: Checks that message expectations are set using spies. Description: Checks that message expectations are set using spies.
@ -508,19 +526,19 @@ RSpec/MessageSpies:
- have_received - have_received
- receive - receive
VersionAdded: '1.9' VersionAdded: '1.9'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageSpies Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageSpies
RSpec/MissingExampleGroupArgument: RSpec/MissingExampleGroupArgument:
Description: Checks that the first argument to an example group is not empty. Description: Checks that the first argument to an example group is not empty.
Enabled: true Enabled: true
VersionAdded: '1.28' VersionAdded: '1.28'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MissingExampleGroupArgument Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MissingExampleGroupArgument
RSpec/MultipleDescribes: RSpec/MultipleDescribes:
Description: Checks for multiple top-level example groups. Description: Checks for multiple top-level example groups.
Enabled: true Enabled: true
VersionAdded: '1.0' VersionAdded: '1.0'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleDescribes Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleDescribes
RSpec/MultipleExpectations: RSpec/MultipleExpectations:
Description: Checks if examples contain too many `expect` calls. Description: Checks if examples contain too many `expect` calls.
@ -528,7 +546,8 @@ RSpec/MultipleExpectations:
Max: 1 Max: 1
VersionAdded: '1.7' VersionAdded: '1.7'
VersionChanged: '1.21' VersionChanged: '1.21'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleExpectations StyleGuide: https://rspec.rubystyle.guide/#expectation-per-example
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleExpectations
RSpec/MultipleMemoizedHelpers: RSpec/MultipleMemoizedHelpers:
Description: Checks if example groups contain too many `let` and `subject` calls. Description: Checks if example groups contain too many `let` and `subject` calls.
@ -536,20 +555,22 @@ RSpec/MultipleMemoizedHelpers:
AllowSubject: true AllowSubject: true
Max: 5 Max: 5
VersionAdded: '1.43' VersionAdded: '1.43'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleMemoizedHelpers StyleGuide: https://rspec.rubystyle.guide/#let-blocks
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleMemoizedHelpers
RSpec/MultipleSubjects: RSpec/MultipleSubjects:
Description: Checks if an example group defines `subject` multiple times. Description: Checks if an example group defines `subject` multiple times.
Enabled: true Enabled: true
VersionAdded: '1.16' VersionAdded: '1.16'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleSubjects Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleSubjects
RSpec/NamedSubject: RSpec/NamedSubject:
Description: Checks for explicitly referenced test subjects. Description: Checks for explicitly referenced test subjects.
Enabled: true Enabled: true
IgnoreSharedExamples: true IgnoreSharedExamples: true
VersionAdded: 1.5.3 VersionAdded: 1.5.3
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NamedSubject StyleGuide: https://rspec.rubystyle.guide/#use-subject
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NamedSubject
RSpec/NestedGroups: RSpec/NestedGroups:
Description: Checks for nested example groups. Description: Checks for nested example groups.
@ -557,7 +578,7 @@ RSpec/NestedGroups:
Max: 3 Max: 3
VersionAdded: '1.7' VersionAdded: '1.7'
VersionChanged: '1.10' VersionChanged: '1.10'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NestedGroups Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NestedGroups
RSpec/NotToNot: RSpec/NotToNot:
Description: Checks for consistent method usage for negating expectations. Description: Checks for consistent method usage for negating expectations.
@ -567,19 +588,19 @@ RSpec/NotToNot:
- not_to - not_to
- to_not - to_not
VersionAdded: '1.4' VersionAdded: '1.4'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NotToNot Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NotToNot
RSpec/OverwritingSetup: RSpec/OverwritingSetup:
Description: Checks if there is a let/subject that overwrites an existing one. Description: Checks if there is a let/subject that overwrites an existing one.
Enabled: true Enabled: true
VersionAdded: '1.14' VersionAdded: '1.14'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/OverwritingSetup Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/OverwritingSetup
RSpec/Pending: RSpec/Pending:
Description: Checks for any pending or skipped examples. Description: Checks for any pending or skipped examples.
Enabled: false Enabled: false
VersionAdded: '1.25' VersionAdded: '1.25'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Pending Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Pending
RSpec/PredicateMatcher: RSpec/PredicateMatcher:
Description: Prefer using predicate matcher over using predicate method directly. Description: Prefer using predicate matcher over using predicate method directly.
@ -592,49 +613,50 @@ RSpec/PredicateMatcher:
- explicit - explicit
SafeAutoCorrect: false SafeAutoCorrect: false
VersionAdded: '1.16' VersionAdded: '1.16'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/PredicateMatcher StyleGuide: https://rspec.rubystyle.guide/#predicate-matchers
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/PredicateMatcher
RSpec/ReceiveCounts: RSpec/ReceiveCounts:
Description: Check for `once` and `twice` receive counts matchers usage. Description: Check for `once` and `twice` receive counts matchers usage.
Enabled: true Enabled: true
VersionAdded: '1.26' VersionAdded: '1.26'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveCounts Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveCounts
RSpec/ReceiveNever: RSpec/ReceiveNever:
Description: Prefer `not_to receive(...)` over `receive(...).never`. Description: Prefer `not_to receive(...)` over `receive(...).never`.
Enabled: true Enabled: true
VersionAdded: '1.28' VersionAdded: '1.28'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveNever Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveNever
RSpec/RepeatedDescription: RSpec/RepeatedDescription:
Description: Check for repeated description strings in example groups. Description: Check for repeated description strings in example groups.
Enabled: true Enabled: true
VersionAdded: '1.9' VersionAdded: '1.9'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedDescription Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedDescription
RSpec/RepeatedExample: RSpec/RepeatedExample:
Description: Check for repeated examples within example groups. Description: Check for repeated examples within example groups.
Enabled: true Enabled: true
VersionAdded: '1.10' VersionAdded: '1.10'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExample Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExample
RSpec/RepeatedExampleGroupBody: RSpec/RepeatedExampleGroupBody:
Description: Check for repeated describe and context block body. Description: Check for repeated describe and context block body.
Enabled: true Enabled: true
VersionAdded: '1.38' VersionAdded: '1.38'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupBody Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupBody
RSpec/RepeatedExampleGroupDescription: RSpec/RepeatedExampleGroupDescription:
Description: Check for repeated example group descriptions. Description: Check for repeated example group descriptions.
Enabled: true Enabled: true
VersionAdded: '1.38' VersionAdded: '1.38'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupDescription Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupDescription
RSpec/RepeatedIncludeExample: RSpec/RepeatedIncludeExample:
Description: Check for repeated include of shared examples. Description: Check for repeated include of shared examples.
Enabled: true Enabled: true
VersionAdded: '1.44' VersionAdded: '1.44'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedIncludeExample Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedIncludeExample
RSpec/ReturnFromStub: RSpec/ReturnFromStub:
Description: Checks for consistent style of stub's return setting. Description: Checks for consistent style of stub's return setting.
@ -645,63 +667,65 @@ RSpec/ReturnFromStub:
- block - block
VersionAdded: '1.16' VersionAdded: '1.16'
VersionChanged: '1.22' VersionChanged: '1.22'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReturnFromStub Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReturnFromStub
RSpec/ScatteredLet: RSpec/ScatteredLet:
Description: Checks for let scattered across the example group. Description: Checks for let scattered across the example group.
Enabled: true Enabled: true
VersionAdded: '1.14' VersionAdded: '1.14'
VersionChanged: '1.39' VersionChanged: '1.39'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredLet Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredLet
RSpec/ScatteredSetup: RSpec/ScatteredSetup:
Description: Checks for setup scattered across multiple hooks in an example group. Description: Checks for setup scattered across multiple hooks in an example group.
Enabled: true Enabled: true
VersionAdded: '1.10' VersionAdded: '1.10'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredSetup Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredSetup
RSpec/SharedContext: RSpec/SharedContext:
Description: Checks for proper shared_context and shared_examples usage. Description: Checks for proper shared_context and shared_examples usage.
Enabled: true Enabled: true
VersionAdded: '1.13' VersionAdded: '1.13'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedContext Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedContext
RSpec/SharedExamples: RSpec/SharedExamples:
Description: Enforces use of string to titleize shared examples. Description: Enforces use of string to titleize shared examples.
Enabled: true Enabled: true
VersionAdded: '1.25' VersionAdded: '1.25'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedExamples Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedExamples
RSpec/SingleArgumentMessageChain: RSpec/SingleArgumentMessageChain:
Description: Checks that chains of messages contain more than one element. Description: Checks that chains of messages contain more than one element.
Enabled: true Enabled: true
VersionAdded: '1.9' VersionAdded: '1.9'
VersionChanged: '1.10' VersionChanged: '1.10'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SingleArgumentMessageChain Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SingleArgumentMessageChain
RSpec/StubbedMock: RSpec/StubbedMock:
Description: Checks that message expectations do not have a configured response. Description: Checks that message expectations do not have a configured response.
Enabled: true Enabled: true
VersionAdded: '1.44' VersionAdded: '1.44'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/StubbedMock Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/StubbedMock
RSpec/SubjectDeclaration: RSpec/SubjectDeclaration:
Description: Ensure that subject is defined using subject helper. Description: Ensure that subject is defined using subject helper.
Enabled: pending Enabled: pending
VersionAdded: '2.5' VersionAdded: '2.5'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SubjectDeclaration Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SubjectDeclaration
RSpec/SubjectStub: RSpec/SubjectStub:
Description: Checks for stubbed test subjects. Description: Checks for stubbed test subjects.
Enabled: true Enabled: true
VersionAdded: '1.7' VersionAdded: '1.7'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SubjectStub VersionChanged: '2.8'
StyleGuide: https://rspec.rubystyle.guide/#dont-stub-subject
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SubjectStub
RSpec/UnspecifiedException: RSpec/UnspecifiedException:
Description: Checks for a specified error in checking raised errors. Description: Checks for a specified error in checking raised errors.
Enabled: true Enabled: true
VersionAdded: '1.30' VersionAdded: '1.30'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/UnspecifiedException Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/UnspecifiedException
RSpec/VariableDefinition: RSpec/VariableDefinition:
Description: Checks that memoized helpers names are symbols or strings. Description: Checks that memoized helpers names are symbols or strings.
@ -711,7 +735,7 @@ RSpec/VariableDefinition:
- symbols - symbols
- strings - strings
VersionAdded: '1.40' VersionAdded: '1.40'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VariableDefinition Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VariableDefinition
RSpec/VariableName: RSpec/VariableName:
Description: Checks that memoized helper names use the configured style. Description: Checks that memoized helper names use the configured style.
@ -723,7 +747,7 @@ RSpec/VariableName:
IgnoredPatterns: [] IgnoredPatterns: []
VersionAdded: '1.40' VersionAdded: '1.40'
VersionChanged: '1.43' VersionChanged: '1.43'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VariableName Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VariableName
RSpec/VerifiedDoubles: RSpec/VerifiedDoubles:
Description: Prefer using verifying doubles over normal doubles. Description: Prefer using verifying doubles over normal doubles.
@ -732,19 +756,20 @@ RSpec/VerifiedDoubles:
IgnoreSymbolicNames: false IgnoreSymbolicNames: false
VersionAdded: 1.2.1 VersionAdded: 1.2.1
VersionChanged: '1.5' VersionChanged: '1.5'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VerifiedDoubles StyleGuide: https://rspec.rubystyle.guide/#doubles
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VerifiedDoubles
RSpec/VoidExpect: RSpec/VoidExpect:
Description: This cop checks void `expect()`. Description: This cop checks void `expect()`.
Enabled: true Enabled: true
VersionAdded: '1.16' VersionAdded: '1.16'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VoidExpect Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VoidExpect
RSpec/Yield: RSpec/Yield:
Description: This cop checks for calling a block within a stub. Description: This cop checks for calling a block within a stub.
Enabled: true Enabled: true
VersionAdded: '1.32' VersionAdded: '1.32'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Yield Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Yield
RSpec/Capybara: RSpec/Capybara:
Enabled: true Enabled: true
@ -756,7 +781,7 @@ RSpec/Capybara/CurrentPathExpectation:
Enabled: true Enabled: true
VersionAdded: '1.18' VersionAdded: '1.18'
VersionChanged: '2.0' VersionChanged: '2.0'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/CurrentPathExpectation Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/CurrentPathExpectation
RSpec/Capybara/FeatureMethods: RSpec/Capybara/FeatureMethods:
Description: Checks for consistent method usage in feature specs. Description: Checks for consistent method usage in feature specs.
@ -764,14 +789,14 @@ RSpec/Capybara/FeatureMethods:
EnabledMethods: [] EnabledMethods: []
VersionAdded: '1.17' VersionAdded: '1.17'
VersionChanged: '2.0' VersionChanged: '2.0'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/FeatureMethods Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/FeatureMethods
RSpec/Capybara/VisibilityMatcher: RSpec/Capybara/VisibilityMatcher:
Description: Checks for boolean visibility in capybara finders. Description: Checks for boolean visibility in Capybara finders.
Enabled: true Enabled: true
VersionAdded: '1.39' VersionAdded: '1.39'
VersionChanged: '2.0' VersionChanged: '2.0'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/VisibilityMatcher Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/VisibilityMatcher
RSpec/FactoryBot: RSpec/FactoryBot:
Enabled: true Enabled: true
@ -787,7 +812,7 @@ RSpec/FactoryBot/AttributeDefinedStatically:
- features/support/factories/**/*.rb - features/support/factories/**/*.rb
VersionAdded: '1.28' VersionAdded: '1.28'
VersionChanged: '2.0' VersionChanged: '2.0'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/AttributeDefinedStatically Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/AttributeDefinedStatically
RSpec/FactoryBot/CreateList: RSpec/FactoryBot/CreateList:
Description: Checks for create_list usage. Description: Checks for create_list usage.
@ -804,7 +829,7 @@ RSpec/FactoryBot/CreateList:
- n_times - n_times
VersionAdded: '1.25' VersionAdded: '1.25'
VersionChanged: '2.0' VersionChanged: '2.0'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/CreateList Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/CreateList
RSpec/FactoryBot/FactoryClassName: RSpec/FactoryBot/FactoryClassName:
Description: Use string value when setting the class attribute explicitly. Description: Use string value when setting the class attribute explicitly.
@ -815,14 +840,14 @@ RSpec/FactoryBot/FactoryClassName:
- features/support/factories/**/*.rb - features/support/factories/**/*.rb
VersionAdded: '1.37' VersionAdded: '1.37'
VersionChanged: '2.0' VersionChanged: '2.0'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/FactoryClassName Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/FactoryClassName
RSpec/FactoryBot/SyntaxMethods: RSpec/FactoryBot/SyntaxMethods:
Description: Use shorthands from `FactoryBot::Syntax::Methods` in your specs. Description: Use shorthands from `FactoryBot::Syntax::Methods` in your specs.
Enabled: pending Enabled: pending
SafeAutoCorrect: false SafeAutoCorrect: false
VersionAdded: '2.7' VersionAdded: '2.7'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/SyntaxMethods Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/SyntaxMethods
RSpec/Rails: RSpec/Rails:
Enabled: true Enabled: true
@ -833,7 +858,7 @@ RSpec/Rails/AvoidSetupHook:
Description: Checks that tests use RSpec `before` hook over Rails `setup` method. Description: Checks that tests use RSpec `before` hook over Rails `setup` method.
Enabled: pending Enabled: pending
VersionAdded: '2.4' VersionAdded: '2.4'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/AvoidSetupHook Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/AvoidSetupHook
RSpec/Rails/HttpStatus: RSpec/Rails/HttpStatus:
Description: Enforces use of symbolic or numeric value to describe HTTP status. Description: Enforces use of symbolic or numeric value to describe HTTP status.
@ -844,4 +869,4 @@ RSpec/Rails/HttpStatus:
- symbolic - symbolic
VersionAdded: '1.23' VersionAdded: '1.23'
VersionChanged: '2.0' VersionChanged: '2.0'
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/HttpStatus Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/HttpStatus

View File

@ -6,13 +6,13 @@ module RuboCop
module Capybara module Capybara
# Checks that no expectations are set on Capybara's `current_path`. # Checks that no expectations are set on Capybara's `current_path`.
# #
# The `have_current_path` matcher (https://www.rubydoc.info/github/ # The
# teamcapybara/capybara/master/Capybara/RSpecMatchers#have_current_path- # https://www.rubydoc.info/github/teamcapybara/capybara/master/Capybara/RSpecMatchers#have_current_path-instance_method[`have_current_path` matcher]
# instance_method) should be used on `page` to set expectations on # should be used on `page` to set expectations on Capybara's
# Capybara's current path, since it uses Capybara's waiting # current path, since it uses
# functionality (https://github.com/teamcapybara/capybara/blob/master/ # https://github.com/teamcapybara/capybara/blob/master/README.md#asynchronous-javascript-ajax-and-friends[Capybara's waiting functionality]
# README.md#asynchronous-javascript-ajax-and-friends) which ensures that # which ensures that preceding actions (like `click_link`) have
# preceding actions (like `click_link`) have completed. # completed.
# #
# @example # @example
# # bad # # bad

View File

@ -4,7 +4,7 @@ module RuboCop
module Cop module Cop
module RSpec module RSpec
module Capybara module Capybara
# Checks for boolean visibility in capybara finders. # Checks for boolean visibility in Capybara finders.
# #
# Capybara lets you find elements that match a certain visibility using # Capybara lets you find elements that match a certain visibility using
# the `:visible` option. `:visible` accepts both boolean and symbols as # the `:visible` option. `:visible` accepts both boolean and symbols as
@ -12,7 +12,8 @@ module RuboCop
# false` does not find just invisible elements, but both visible and # false` does not find just invisible elements, but both visible and
# invisible elements. For expressiveness and clarity, use one of the # invisible elements. For expressiveness and clarity, use one of the
# symbol values, `:all`, `:hidden` or `:visible`. # symbol values, `:all`, `:hidden` or `:visible`.
# (https://www.rubydoc.info/gems/capybara/Capybara%2FNode%2FFinders:all) # Read more in
# https://www.rubydoc.info/gems/capybara/Capybara%2FNode%2FFinders:all[the documentation].
# #
# @example # @example
# #

View File

@ -17,24 +17,18 @@ module RuboCop
class EmptyLineAfterSubject < Base class EmptyLineAfterSubject < Base
extend AutoCorrector extend AutoCorrector
include EmptyLineSeparation include EmptyLineSeparation
include InsideExampleGroup
MSG = 'Add an empty line after `%<subject>s`.' MSG = 'Add an empty line after `%<subject>s`.'
def on_block(node) def on_block(node)
return unless subject?(node) && !in_spec_block?(node) return unless subject?(node)
return unless inside_example_group?(node)
missing_separating_line_offense(node) do |method| missing_separating_line_offense(node) do |method|
format(MSG, subject: method) format(MSG, subject: method)
end end
end end
private
def in_spec_block?(node)
node.each_ancestor(:block).any? do |ancestor|
Examples.all(ancestor.method_name)
end
end
end end
end end
end end

View File

@ -33,11 +33,13 @@ module RuboCop
# #
class LeadingSubject < Base class LeadingSubject < Base
extend AutoCorrector extend AutoCorrector
include InsideExampleGroup
MSG = 'Declare `subject` above any other `%<offending>s` declarations.' MSG = 'Declare `subject` above any other `%<offending>s` declarations.'
def on_block(node) def on_block(node)
return unless subject?(node) && !in_spec_block?(node) return unless subject?(node)
return unless inside_example_group?(node)
check_previous_nodes(node) check_previous_nodes(node)
end end
@ -78,12 +80,6 @@ module RuboCop
spec_group?(node) || spec_group?(node) ||
include?(node) include?(node)
end end
def in_spec_block?(node)
node.each_ancestor(:block).any? do |ancestor|
example?(ancestor)
end
end
end end
end end
end end

View File

@ -9,11 +9,11 @@ module RuboCop
private private
def inside_example_group?(node) def inside_example_group?(node)
return example_group?(node) if example_group_root?(node) return spec_group?(node) if example_group_root?(node)
root = node.ancestors.find { |parent| example_group_root?(parent) } root = node.ancestors.find { |parent| example_group_root?(parent) }
example_group?(root) spec_group?(root)
end end
def example_group_root?(node) def example_group_root?(node)

View File

@ -7,6 +7,9 @@ module RuboCop
module RSpec module RSpec
# Checks for stubbed test subjects. # Checks for stubbed test subjects.
# #
# Checks nested subject stubs for innermost subject definition
# when subject is also defined in parent example groups.
#
# @see https://robots.thoughtbot.com/don-t-stub-the-system-under-test # @see https://robots.thoughtbot.com/don-t-stub-the-system-under-test
# @see https://samphippen.com/introducing-rspec-smells-and-where-to-find-them#smell-1-stubject # @see https://samphippen.com/introducing-rspec-smells-and-where-to-find-them#smell-1-stubject
# @see https://github.com/rubocop-hq/rspec-style-guide#dont-stub-subject # @see https://github.com/rubocop-hq/rspec-style-guide#dont-stub-subject
@ -22,6 +25,20 @@ module RuboCop
# end # end
# 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 # # good
# describe Article do # describe Article do
# subject(:article) { Article.new(author: nil) } # subject(:article) { Article.new(author: nil) }
@ -36,29 +53,37 @@ module RuboCop
MSG = 'Do not stub methods of the object under test.' MSG = 'Do not stub methods of the object under test.'
# @!method subject(node) # @!method subject?(node)
# Find a named or unnamed subject definition # Find a named or unnamed subject definition
# #
# @example anonymous subject # @example anonymous subject
# subject(parse('subject { foo }').ast) do |name| # subject?(parse('subject { foo }').ast) do |name|
# name # => :subject # name # => :subject
# end # end
# #
# @example named subject # @example named subject
# subject(parse('subject(:thing) { foo }').ast) do |name| # subject?(parse('subject(:thing) { foo }').ast) do |name|
# name # => :thing # name # => :thing
# end # end
# #
# @param node [RuboCop::AST::Node] # @param node [RuboCop::AST::Node]
# #
# @yield [Symbol] subject name # @yield [Symbol] subject name
def_node_matcher :subject, <<-PATTERN def_node_matcher :subject?, <<-PATTERN
(block (block
(send nil? (send nil?
{:subject (sym $_) | $:subject} {:subject (sym $_) | $:subject}
) args ...) ) args ...)
PATTERN PATTERN
# @!method let?(node)
# Find a memoized helper
def_node_matcher :let?, <<-PATTERN
(block
(send nil? :let (sym $_)
) args ...)
PATTERN
# @!method message_expectation?(node, method_name) # @!method message_expectation?(node, method_name)
# Match `allow` and `expect(...).to receive` # Match `allow` and `expect(...).to receive`
# #
@ -73,7 +98,7 @@ module RuboCop
def_node_matcher :message_expectation?, <<-PATTERN def_node_matcher :message_expectation?, <<-PATTERN
(send (send
{ {
(send nil? { :expect :allow } (send nil? {% :subject})) (send nil? { :expect :allow } (send nil? %))
(send nil? :is_expected) (send nil? :is_expected)
} }
#Runners.all #Runners.all
@ -89,7 +114,8 @@ module RuboCop
PATTERN PATTERN
def on_top_level_group(node) def on_top_level_group(node)
@explicit_subjects = find_all_explicit_subjects(node) @explicit_subjects = find_all_explicit(node, &method(:subject?))
@subject_overrides = find_all_explicit(node, &method(:let?))
find_subject_expectations(node) do |stub| find_subject_expectations(node) do |stub|
add_offense(stub) add_offense(stub)
@ -98,12 +124,12 @@ module RuboCop
private private
def find_all_explicit_subjects(node) def find_all_explicit(node)
node.each_descendant(:block).with_object({}) do |child, h| node.each_descendant(:block).with_object({}) do |child, h|
name = subject(child) name = yield(child)
next unless name next unless name
outer_example_group = child.each_ancestor.find do |a| outer_example_group = child.each_ancestor(:block).find do |a|
example_group?(a) example_group?(a)
end end
@ -113,14 +139,14 @@ module RuboCop
end end
def find_subject_expectations(node, subject_names = [], &block) def find_subject_expectations(node, subject_names = [], &block)
subject_names = @explicit_subjects[node] if @explicit_subjects[node] subject_names = [*subject_names, *@explicit_subjects[node]]
subject_names -= @subject_overrides[node] if @subject_overrides[node]
expectation_detected = (subject_names + [:subject]).any? do |name| names = Set[*subject_names, :subject]
message_expectation?(node, name) expectation_detected = message_expectation?(node, names)
end
return yield(node) if expectation_detected return yield(node) if expectation_detected
node.each_child_node do |child| node.each_child_node(:send, :def, :block, :begin) do |child|
find_subject_expectations(child, subject_names, &block) find_subject_expectations(child, subject_names, &block)
end end
end end

Some files were not shown because too many files have changed in this diff Show More