mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1051 lines
33 KiB
1051 lines
33 KiB
---
|
|
RSpec:
|
|
Enabled: true
|
|
StyleGuideBaseURL: https://rspec.rubystyle.guide
|
|
DocumentationBaseURL: https://docs.rubocop.org/rubocop-rspec
|
|
Include:
|
|
- "**/*_spec.rb"
|
|
- "**/spec/**/*"
|
|
Exclude:
|
|
- "**/spec/factories.rb"
|
|
- "**/spec/factories/**/*.rb"
|
|
- "**/features/support/factories/**/*.rb"
|
|
Language:
|
|
inherit_mode:
|
|
merge:
|
|
- Expectations
|
|
- Helpers
|
|
- Hooks
|
|
- Subjects
|
|
ExampleGroups:
|
|
inherit_mode:
|
|
merge:
|
|
- Regular
|
|
- Skipped
|
|
- Focused
|
|
Regular:
|
|
- describe
|
|
- context
|
|
- feature
|
|
- example_group
|
|
Skipped:
|
|
- xdescribe
|
|
- xcontext
|
|
- xfeature
|
|
Focused:
|
|
- fdescribe
|
|
- fcontext
|
|
- ffeature
|
|
Examples:
|
|
inherit_mode:
|
|
merge:
|
|
- Regular
|
|
- Skipped
|
|
- Focused
|
|
- Pending
|
|
Regular:
|
|
- it
|
|
- specify
|
|
- example
|
|
- scenario
|
|
- its
|
|
Focused:
|
|
- fit
|
|
- fspecify
|
|
- fexample
|
|
- fscenario
|
|
- focus
|
|
Skipped:
|
|
- xit
|
|
- xspecify
|
|
- xexample
|
|
- xscenario
|
|
- skip
|
|
Pending:
|
|
- pending
|
|
Expectations:
|
|
- are_expected
|
|
- expect
|
|
- expect_any_instance_of
|
|
- is_expected
|
|
- should
|
|
- should_not
|
|
- should_not_receive
|
|
- should_receive
|
|
Helpers:
|
|
- let
|
|
- let!
|
|
Hooks:
|
|
- prepend_before
|
|
- before
|
|
- append_before
|
|
- around
|
|
- prepend_after
|
|
- after
|
|
- append_after
|
|
ErrorMatchers:
|
|
- raise_error
|
|
- raise_exception
|
|
Includes:
|
|
inherit_mode:
|
|
merge:
|
|
- Examples
|
|
- Context
|
|
Examples:
|
|
- it_behaves_like
|
|
- it_should_behave_like
|
|
- include_examples
|
|
Context:
|
|
- include_context
|
|
SharedGroups:
|
|
inherit_mode:
|
|
merge:
|
|
- Examples
|
|
- Context
|
|
Examples:
|
|
- shared_examples
|
|
- shared_examples_for
|
|
Context:
|
|
- shared_context
|
|
Subjects:
|
|
- subject
|
|
- subject!
|
|
|
|
Metrics/BlockLength:
|
|
inherit_mode:
|
|
merge:
|
|
- Exclude
|
|
Exclude:
|
|
- "**/*_spec.rb"
|
|
- "**/spec/**/*"
|
|
|
|
RSpec/AlignLeftLetBrace:
|
|
Description: Checks that left braces for adjacent single line lets are aligned.
|
|
Enabled: false
|
|
VersionAdded: '1.16'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AlignLeftLetBrace
|
|
|
|
RSpec/AlignRightLetBrace:
|
|
Description: Checks that right braces for adjacent single line lets are aligned.
|
|
Enabled: false
|
|
VersionAdded: '1.16'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AlignRightLetBrace
|
|
|
|
RSpec/AnyInstance:
|
|
Description: Check that instances are not being stubbed globally.
|
|
Enabled: true
|
|
VersionAdded: '1.4'
|
|
StyleGuide: https://rspec.rubystyle.guide/#any_instance_of
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AnyInstance
|
|
|
|
RSpec/AroundBlock:
|
|
Description: Checks that around blocks actually run the test.
|
|
Enabled: true
|
|
VersionAdded: '1.11'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AroundBlock
|
|
|
|
RSpec/Be:
|
|
Description: Check for expectations where `be` is used without argument.
|
|
Enabled: true
|
|
VersionAdded: '1.25'
|
|
StyleGuide: https://rspec.rubystyle.guide/#be-matcher
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Be
|
|
|
|
RSpec/BeEmpty:
|
|
Description: Prefer using `be_empty` when checking for an empty array.
|
|
Enabled: true
|
|
AutoCorrect: contextual
|
|
VersionAdded: '2.20'
|
|
VersionChanged: '2.31'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeEmpty
|
|
|
|
RSpec/BeEq:
|
|
Description: Check for expectations where `be(...)` can replace `eq(...)`.
|
|
Enabled: true
|
|
Safe: false
|
|
VersionAdded: 2.9.0
|
|
VersionChanged: '2.16'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeEq
|
|
|
|
RSpec/BeEql:
|
|
Description: Check for expectations where `be(...)` can replace `eql(...)`.
|
|
Enabled: true
|
|
Safe: false
|
|
VersionAdded: '1.7'
|
|
VersionChanged: '2.16'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeEql
|
|
|
|
RSpec/BeNil:
|
|
Description: Ensures a consistent style is used when matching `nil`.
|
|
Enabled: true
|
|
EnforcedStyle: be_nil
|
|
SupportedStyles:
|
|
- be
|
|
- be_nil
|
|
VersionAdded: 2.9.0
|
|
VersionChanged: 2.10.0
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeNil
|
|
|
|
RSpec/BeforeAfterAll:
|
|
Description: Check that before/after(:all/:context) isn't being used.
|
|
Enabled: true
|
|
Exclude:
|
|
- "**/spec/spec_helper.rb"
|
|
- "**/spec/rails_helper.rb"
|
|
- "**/spec/support/**/*.rb"
|
|
VersionAdded: '1.12'
|
|
VersionChanged: '2.23'
|
|
StyleGuide: https://rspec.rubystyle.guide/#avoid-hooks-with-context-scope
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeforeAfterAll
|
|
|
|
RSpec/ChangeByZero:
|
|
Description: Prefer negated matchers over `to change.by(0)`.
|
|
Enabled: true
|
|
VersionAdded: '2.11'
|
|
VersionChanged: '2.14'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ChangeByZero
|
|
NegatedMatcher: ~
|
|
|
|
RSpec/ClassCheck:
|
|
Description: Enforces consistent use of `be_a` or `be_kind_of`.
|
|
StyleGuide: "#is-a-vs-kind-of"
|
|
Enabled: true
|
|
VersionAdded: '2.13'
|
|
EnforcedStyle: be_a
|
|
SupportedStyles:
|
|
- be_a
|
|
- be_kind_of
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ClassCheck
|
|
|
|
RSpec/ContainExactly:
|
|
Description: Checks where `contain_exactly` is used.
|
|
Enabled: true
|
|
VersionAdded: '2.19'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContainExactly
|
|
|
|
RSpec/ContextMethod:
|
|
Description: "`context` should not be used for specifying methods."
|
|
Enabled: true
|
|
VersionAdded: '1.36'
|
|
StyleGuide: https://rspec.rubystyle.guide/#example-group-naming
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContextMethod
|
|
|
|
RSpec/ContextWording:
|
|
Description: Checks that `context` docstring starts with an allowed prefix.
|
|
Enabled: true
|
|
Prefixes:
|
|
- when
|
|
- with
|
|
- without
|
|
AllowedPatterns: []
|
|
VersionAdded: '1.20'
|
|
VersionChanged: '2.13'
|
|
StyleGuide: https://rspec.rubystyle.guide/#context-descriptions
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContextWording
|
|
|
|
RSpec/DescribeClass:
|
|
Description: Check that the first argument to the top-level describe is a constant.
|
|
Enabled: true
|
|
Exclude:
|
|
- "**/spec/features/**/*"
|
|
- "**/spec/requests/**/*"
|
|
- "**/spec/routing/**/*"
|
|
- "**/spec/system/**/*"
|
|
- "**/spec/views/**/*"
|
|
IgnoredMetadata:
|
|
type:
|
|
- channel
|
|
- controller
|
|
- helper
|
|
- job
|
|
- mailer
|
|
- model
|
|
- request
|
|
- routing
|
|
- view
|
|
- feature
|
|
- system
|
|
- mailbox
|
|
- aruba
|
|
- task
|
|
VersionAdded: '1.0'
|
|
VersionChanged: '2.7'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeClass
|
|
|
|
RSpec/DescribeMethod:
|
|
Description: Checks that the second argument to `describe` specifies a method.
|
|
Enabled: true
|
|
VersionAdded: '1.0'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeMethod
|
|
|
|
RSpec/DescribeSymbol:
|
|
Description: Avoid describing symbols.
|
|
Enabled: true
|
|
VersionAdded: '1.15'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeSymbol
|
|
|
|
RSpec/DescribedClass:
|
|
Description: Checks that tests use `described_class`.
|
|
Enabled: true
|
|
SkipBlocks: false
|
|
EnforcedStyle: described_class
|
|
SupportedStyles:
|
|
- described_class
|
|
- explicit
|
|
OnlyStaticConstants: true
|
|
SafeAutoCorrect: false
|
|
VersionAdded: '1.0'
|
|
VersionChanged: '2.27'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribedClass
|
|
|
|
RSpec/DescribedClassModuleWrapping:
|
|
Description: Avoid opening modules and defining specs within them.
|
|
Enabled: false
|
|
VersionAdded: '1.37'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribedClassModuleWrapping
|
|
|
|
RSpec/Dialect:
|
|
Description: Enforces custom RSpec dialects.
|
|
Enabled: false
|
|
PreferredMethods: {}
|
|
VersionAdded: '1.33'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Dialect
|
|
|
|
RSpec/DuplicatedMetadata:
|
|
Description: Avoid duplicated metadata.
|
|
Enabled: true
|
|
VersionAdded: '2.16'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DuplicatedMetadata
|
|
|
|
RSpec/EmptyExampleGroup:
|
|
Description: Checks if an example group does not include any tests.
|
|
Enabled: true
|
|
AutoCorrect: contextual
|
|
SafeAutoCorrect: false
|
|
VersionAdded: '1.7'
|
|
VersionChanged: '2.31'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyExampleGroup
|
|
|
|
RSpec/EmptyHook:
|
|
Description: Checks for empty before and after hooks.
|
|
Enabled: true
|
|
AutoCorrect: contextual
|
|
VersionAdded: '1.39'
|
|
VersionChanged: '2.31'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyHook
|
|
|
|
RSpec/EmptyLineAfterExample:
|
|
Description: Checks if there is an empty line after example blocks.
|
|
Enabled: true
|
|
AllowConsecutiveOneLiners: true
|
|
VersionAdded: '1.36'
|
|
StyleGuide: https://rspec.rubystyle.guide/#empty-lines-around-examples
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExample
|
|
|
|
RSpec/EmptyLineAfterExampleGroup:
|
|
Description: Checks if there is an empty line after example group blocks.
|
|
Enabled: true
|
|
VersionAdded: '1.27'
|
|
StyleGuide: https://rspec.rubystyle.guide/#empty-lines-between-describes
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExampleGroup
|
|
|
|
RSpec/EmptyLineAfterFinalLet:
|
|
Description: Checks if there is an empty line after the last let block.
|
|
Enabled: true
|
|
VersionAdded: '1.14'
|
|
StyleGuide: https://rspec.rubystyle.guide/#empty-line-after-let
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterFinalLet
|
|
|
|
RSpec/EmptyLineAfterHook:
|
|
Description: Checks if there is an empty line after hook blocks.
|
|
Enabled: true
|
|
VersionAdded: '1.27'
|
|
VersionChanged: '2.13'
|
|
StyleGuide: https://rspec.rubystyle.guide/#empty-line-after-let
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterHook
|
|
AllowConsecutiveOneLiners: true
|
|
|
|
RSpec/EmptyLineAfterSubject:
|
|
Description: Checks if there is an empty line after subject block.
|
|
Enabled: true
|
|
VersionAdded: '1.14'
|
|
StyleGuide: https://rspec.rubystyle.guide/#empty-line-after-let
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterSubject
|
|
|
|
RSpec/EmptyMetadata:
|
|
Description: Avoid empty metadata hash.
|
|
Enabled: true
|
|
AutoCorrect: contextual
|
|
VersionAdded: '2.24'
|
|
VersionChanged: '2.31'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyMetadata
|
|
|
|
RSpec/EmptyOutput:
|
|
Description: Check that the `output` matcher is not called with an empty string.
|
|
Enabled: true
|
|
VersionAdded: '2.29'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyOutput
|
|
|
|
RSpec/Eq:
|
|
Description: Use `eq` instead of `be ==` to compare objects.
|
|
Enabled: true
|
|
VersionAdded: '2.24'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Eq
|
|
|
|
RSpec/ExampleLength:
|
|
Description: Checks for long examples.
|
|
Enabled: true
|
|
Max: 5
|
|
CountAsOne: []
|
|
VersionAdded: '1.5'
|
|
VersionChanged: '2.3'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleLength
|
|
|
|
RSpec/ExampleWithoutDescription:
|
|
Description: Checks for examples without a description.
|
|
Enabled: true
|
|
EnforcedStyle: always_allow
|
|
SupportedStyles:
|
|
- always_allow
|
|
- single_line_only
|
|
- disallow
|
|
VersionAdded: '1.22'
|
|
StyleGuide: https://rspec.rubystyle.guide/#it-and-specify
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWithoutDescription
|
|
|
|
RSpec/ExampleWording:
|
|
Description: Checks for common mistakes in example descriptions.
|
|
Enabled: true
|
|
CustomTransform:
|
|
be: is
|
|
BE: IS
|
|
have: has
|
|
HAVE: HAS
|
|
IgnoredWords: []
|
|
DisallowedExamples:
|
|
- works
|
|
VersionAdded: '1.0'
|
|
VersionChanged: '2.13'
|
|
StyleGuide: https://rspec.rubystyle.guide/#should-in-example-docstrings
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWording
|
|
|
|
RSpec/ExcessiveDocstringSpacing:
|
|
Description: Checks for excessive whitespace in example descriptions.
|
|
Enabled: true
|
|
VersionAdded: '2.5'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExcessiveDocstringSpacing
|
|
|
|
RSpec/ExpectActual:
|
|
Description: Checks for `expect(...)` calls containing literal values.
|
|
Enabled: true
|
|
Exclude:
|
|
- "**/spec/routing/**/*"
|
|
VersionAdded: '1.7'
|
|
VersionChanged: '2.23'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectActual
|
|
|
|
RSpec/ExpectChange:
|
|
Description: Checks for consistent style of change matcher.
|
|
Enabled: true
|
|
EnforcedStyle: method_call
|
|
SupportedStyles:
|
|
- method_call
|
|
- block
|
|
SafeAutoCorrect: false
|
|
VersionAdded: '1.22'
|
|
VersionChanged: '2.5'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectChange
|
|
|
|
RSpec/ExpectInHook:
|
|
Description: Do not use `expect` in hooks such as `before`.
|
|
Enabled: true
|
|
VersionAdded: '1.16'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInHook
|
|
|
|
RSpec/ExpectInLet:
|
|
Description: Do not use `expect` in let.
|
|
Enabled: true
|
|
VersionAdded: '2.30'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInLet
|
|
|
|
RSpec/ExpectOutput:
|
|
Description: Checks for opportunities to use `expect { ... }.to output`.
|
|
Enabled: true
|
|
VersionAdded: '1.10'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectOutput
|
|
|
|
RSpec/Focus:
|
|
Description: Checks if examples are focused.
|
|
Enabled: true
|
|
AutoCorrect: contextual
|
|
VersionAdded: '1.5'
|
|
VersionChanged: '2.31'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Focus
|
|
|
|
RSpec/HookArgument:
|
|
Description: Checks the arguments passed to `before`, `around`, and `after`.
|
|
Enabled: true
|
|
EnforcedStyle: implicit
|
|
SupportedStyles:
|
|
- implicit
|
|
- each
|
|
- example
|
|
VersionAdded: '1.7'
|
|
StyleGuide: https://rspec.rubystyle.guide/#redundant-beforeeach
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HookArgument
|
|
|
|
RSpec/HooksBeforeExamples:
|
|
Description: Checks for before/around/after hooks that come after an example.
|
|
Enabled: true
|
|
AutoCorrect: contextual
|
|
VersionAdded: '1.29'
|
|
VersionChanged: '2.31'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HooksBeforeExamples
|
|
|
|
RSpec/IdenticalEqualityAssertion:
|
|
Description: Checks for equality assertions with identical expressions on both sides.
|
|
Enabled: true
|
|
VersionAdded: '2.4'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IdenticalEqualityAssertion
|
|
|
|
RSpec/ImplicitBlockExpectation:
|
|
Description: Check that implicit block expectation syntax is not used.
|
|
Enabled: true
|
|
VersionAdded: '1.35'
|
|
StyleGuide: https://rspec.rubystyle.guide/#implicit-block-expectations
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitBlockExpectation
|
|
|
|
RSpec/ImplicitExpect:
|
|
Description: Check that a consistent implicit expectation style is used.
|
|
Enabled: true
|
|
EnforcedStyle: is_expected
|
|
SupportedStyles:
|
|
- is_expected
|
|
- should
|
|
VersionAdded: '1.8'
|
|
StyleGuide: https://rspec.rubystyle.guide/#use-expect
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitExpect
|
|
|
|
RSpec/ImplicitSubject:
|
|
Description: Checks for usage of implicit subject (`is_expected` / `should`).
|
|
Enabled: true
|
|
EnforcedStyle: single_line_only
|
|
SupportedStyles:
|
|
- single_line_only
|
|
- single_statement_only
|
|
- disallow
|
|
- require_implicit
|
|
VersionAdded: '1.29'
|
|
VersionChanged: '2.13'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitSubject
|
|
|
|
RSpec/IncludeExamples:
|
|
Description: Checks for usage of `include_examples`.
|
|
Enabled: pending
|
|
SafeAutoCorrect: false
|
|
VersionAdded: '3.6'
|
|
VersionChanged: '3.7'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IncludeExamples
|
|
|
|
RSpec/IndexedLet:
|
|
Description: Do not set up test data using indexes (e.g., `item_1`, `item_2`).
|
|
Enabled: true
|
|
VersionAdded: '2.20'
|
|
VersionChanged: '2.23'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IndexedLet
|
|
Max: 1
|
|
AllowedIdentifiers: []
|
|
AllowedPatterns: []
|
|
|
|
RSpec/InstanceSpy:
|
|
Description: Checks for `instance_double` used with `have_received`.
|
|
Enabled: true
|
|
VersionAdded: '1.12'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceSpy
|
|
|
|
RSpec/InstanceVariable:
|
|
Description: Checks for instance variable usage in specs.
|
|
Enabled: true
|
|
AssignmentOnly: false
|
|
VersionAdded: '1.0'
|
|
VersionChanged: '1.7'
|
|
StyleGuide: https://rspec.rubystyle.guide/#instance-variables
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceVariable
|
|
|
|
RSpec/IsExpectedSpecify:
|
|
Description: Check for `specify` with `is_expected` and one-liner expectations.
|
|
Enabled: true
|
|
VersionAdded: '2.27'
|
|
StyleGuide: https://rspec.rubystyle.guide/#it-and-specify
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IsExpectedSpecify
|
|
|
|
RSpec/ItBehavesLike:
|
|
Description: Checks that only one `it_behaves_like` style is used.
|
|
Enabled: true
|
|
EnforcedStyle: it_behaves_like
|
|
SupportedStyles:
|
|
- it_behaves_like
|
|
- it_should_behave_like
|
|
VersionAdded: '1.13'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ItBehavesLike
|
|
|
|
RSpec/IteratedExpectation:
|
|
Description: Check that `all` matcher is used instead of iterating over an array.
|
|
Enabled: true
|
|
VersionAdded: '1.14'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IteratedExpectation
|
|
|
|
RSpec/LeadingSubject:
|
|
Description: Enforce that subject is the first definition in the test.
|
|
Enabled: true
|
|
VersionAdded: '1.7'
|
|
VersionChanged: '1.14'
|
|
StyleGuide: https://rspec.rubystyle.guide/#leading-subject
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeadingSubject
|
|
|
|
RSpec/LeakyConstantDeclaration:
|
|
Description: Checks that no class, module, or constant is declared.
|
|
Enabled: true
|
|
VersionAdded: '1.35'
|
|
StyleGuide: https://rspec.rubystyle.guide/#declare-constants
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeakyConstantDeclaration
|
|
|
|
RSpec/LeakyLocalVariable:
|
|
Description: Checks for local variables from outer scopes used inside examples.
|
|
Enabled: pending
|
|
VersionAdded: '3.8'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeakyLocalVariable
|
|
|
|
RSpec/LetBeforeExamples:
|
|
Description: Checks for `let` definitions that come after an example.
|
|
Enabled: true
|
|
AutoCorrect: contextual
|
|
VersionAdded: '1.16'
|
|
VersionChanged: '2.31'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetBeforeExamples
|
|
|
|
RSpec/LetSetup:
|
|
Description: Checks unreferenced `let!` calls being used for test setup.
|
|
Enabled: true
|
|
VersionAdded: '1.7'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetSetup
|
|
|
|
RSpec/MatchArray:
|
|
Description: Checks where `match_array` is used.
|
|
Enabled: true
|
|
VersionAdded: '2.19'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MatchArray
|
|
|
|
RSpec/MessageChain:
|
|
Description: Check that chains of messages are not being stubbed.
|
|
Enabled: true
|
|
VersionAdded: '1.7'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageChain
|
|
|
|
RSpec/MessageExpectation:
|
|
Description: Checks for consistent message expectation style.
|
|
Enabled: false
|
|
EnforcedStyle: allow
|
|
SupportedStyles:
|
|
- allow
|
|
- expect
|
|
VersionAdded: '1.7'
|
|
VersionChanged: '1.8'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageExpectation
|
|
|
|
RSpec/MessageSpies:
|
|
Description: Checks that message expectations are set using spies.
|
|
Enabled: true
|
|
EnforcedStyle: have_received
|
|
SupportedStyles:
|
|
- have_received
|
|
- receive
|
|
VersionAdded: '1.9'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageSpies
|
|
|
|
RSpec/MetadataStyle:
|
|
Description: Use consistent metadata style.
|
|
Enabled: true
|
|
EnforcedStyle: symbol
|
|
SupportedStyles:
|
|
- hash
|
|
- symbol
|
|
VersionAdded: '2.24'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MetadataStyle
|
|
|
|
RSpec/MissingExampleGroupArgument:
|
|
Description: Checks that the first argument to an example group is not empty.
|
|
Enabled: true
|
|
VersionAdded: '1.28'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MissingExampleGroupArgument
|
|
|
|
RSpec/MissingExpectationTargetMethod:
|
|
Description: Checks if `.to`, `not_to` or `to_not` are used.
|
|
Enabled: true
|
|
VersionAdded: '3.0'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MissingExpectationTargetMethod
|
|
|
|
RSpec/MultipleDescribes:
|
|
Description: Checks for multiple top-level example groups.
|
|
Enabled: true
|
|
VersionAdded: '1.0'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleDescribes
|
|
|
|
RSpec/MultipleExpectations:
|
|
Description: Checks if examples contain too many `expect` calls.
|
|
Enabled: true
|
|
Max: 1
|
|
VersionAdded: '1.7'
|
|
VersionChanged: '1.21'
|
|
StyleGuide: https://rspec.rubystyle.guide/#expectation-per-example
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleExpectations
|
|
|
|
RSpec/MultipleMemoizedHelpers:
|
|
Description: Checks if example groups contain too many `let` and `subject` calls.
|
|
Enabled: true
|
|
AllowSubject: true
|
|
Max: 5
|
|
VersionAdded: '1.43'
|
|
StyleGuide: https://rspec.rubystyle.guide/#let-blocks
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleMemoizedHelpers
|
|
|
|
RSpec/MultipleSubjects:
|
|
Description: Checks if an example group defines `subject` multiple times.
|
|
Enabled: true
|
|
VersionAdded: '1.16'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleSubjects
|
|
|
|
RSpec/NamedSubject:
|
|
Description: Checks for explicitly referenced test subjects.
|
|
Enabled: true
|
|
EnforcedStyle: always
|
|
SupportedStyles:
|
|
- always
|
|
- named_only
|
|
IgnoreSharedExamples: true
|
|
VersionAdded: 1.5.3
|
|
VersionChanged: '2.15'
|
|
StyleGuide: https://rspec.rubystyle.guide/#use-subject
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NamedSubject
|
|
|
|
RSpec/NestedGroups:
|
|
Description: Checks for nested example groups.
|
|
Enabled: true
|
|
Max: 3
|
|
AllowedGroups: []
|
|
VersionAdded: '1.7'
|
|
VersionChanged: '2.13'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NestedGroups
|
|
|
|
RSpec/NoExpectationExample:
|
|
Description: Checks if an example contains any expectation.
|
|
Enabled: true
|
|
Safe: false
|
|
VersionAdded: '2.13'
|
|
VersionChanged: '2.14'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NoExpectationExample
|
|
AllowedPatterns:
|
|
- "^expect_"
|
|
- "^assert_"
|
|
|
|
RSpec/NotToNot:
|
|
Description: Checks for consistent method usage for negating expectations.
|
|
Enabled: true
|
|
EnforcedStyle: not_to
|
|
SupportedStyles:
|
|
- not_to
|
|
- to_not
|
|
VersionAdded: '1.4'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NotToNot
|
|
|
|
RSpec/Output:
|
|
Description: Checks for the use of output calls like puts and print in specs.
|
|
Enabled: pending
|
|
AutoCorrect: contextual
|
|
SafeAutoCorrect: false
|
|
VersionAdded: '3.9'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Output
|
|
|
|
RSpec/OverwritingSetup:
|
|
Description: Checks if there is a let/subject that overwrites an existing one.
|
|
Enabled: true
|
|
VersionAdded: '1.14'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/OverwritingSetup
|
|
|
|
RSpec/Pending:
|
|
Description: Checks for any pending or skipped examples.
|
|
Enabled: false
|
|
VersionAdded: '1.25'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Pending
|
|
|
|
RSpec/PendingWithoutReason:
|
|
Description: Checks for pending or skipped examples without reason.
|
|
Enabled: true
|
|
VersionAdded: '2.16'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/PendingWithoutReason
|
|
|
|
RSpec/PredicateMatcher:
|
|
Description: Prefer using predicate matcher over using predicate method directly.
|
|
Enabled: true
|
|
Strict: true
|
|
EnforcedStyle: inflected
|
|
AllowedExplicitMatchers: []
|
|
SupportedStyles:
|
|
- inflected
|
|
- explicit
|
|
SafeAutoCorrect: false
|
|
VersionAdded: '1.16'
|
|
StyleGuide: https://rspec.rubystyle.guide/#predicate-matchers
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/PredicateMatcher
|
|
|
|
RSpec/ReceiveCounts:
|
|
Description: Check for `once` and `twice` receive counts matchers usage.
|
|
Enabled: true
|
|
VersionAdded: '1.26'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveCounts
|
|
|
|
RSpec/ReceiveMessages:
|
|
Description: Prefer `receive_messages` over multiple `receive`s on the same object.
|
|
Enabled: true
|
|
SafeAutoCorrect: false
|
|
VersionAdded: '2.23'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveMessages
|
|
|
|
RSpec/ReceiveNever:
|
|
Description: Prefer `not_to receive(...)` over `receive(...).never`.
|
|
Enabled: true
|
|
VersionAdded: '1.28'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveNever
|
|
|
|
RSpec/RedundantAround:
|
|
Description: Remove redundant `around` hook.
|
|
Enabled: true
|
|
VersionAdded: '2.19'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RedundantAround
|
|
|
|
RSpec/RedundantPredicateMatcher:
|
|
Description: Checks for redundant predicate matcher.
|
|
Enabled: true
|
|
VersionAdded: '2.26'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RedundantPredicateMatcher
|
|
|
|
RSpec/RemoveConst:
|
|
Description: Checks that `remove_const` is not used in specs.
|
|
Enabled: true
|
|
VersionAdded: '2.26'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RemoveConst
|
|
|
|
RSpec/RepeatedDescription:
|
|
Description: Check for repeated description strings in example groups.
|
|
Enabled: true
|
|
VersionAdded: '1.9'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedDescription
|
|
|
|
RSpec/RepeatedExample:
|
|
Description: Check for repeated examples within example groups.
|
|
Enabled: true
|
|
VersionAdded: '1.10'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExample
|
|
|
|
RSpec/RepeatedExampleGroupBody:
|
|
Description: Check for repeated describe and context block body.
|
|
Enabled: true
|
|
VersionAdded: '1.38'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupBody
|
|
|
|
RSpec/RepeatedExampleGroupDescription:
|
|
Description: Check for repeated example group descriptions.
|
|
Enabled: true
|
|
VersionAdded: '1.38'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupDescription
|
|
|
|
RSpec/RepeatedIncludeExample:
|
|
Description: Check for repeated include of shared examples.
|
|
Enabled: true
|
|
VersionAdded: '1.44'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedIncludeExample
|
|
|
|
RSpec/RepeatedSubjectCall:
|
|
Description: Checks for repeated calls to subject missing that it is memoized.
|
|
Enabled: true
|
|
VersionAdded: '2.27'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedSubjectCall
|
|
|
|
RSpec/ReturnFromStub:
|
|
Description: Checks for consistent style of stub's return setting.
|
|
Enabled: true
|
|
EnforcedStyle: and_return
|
|
SupportedStyles:
|
|
- and_return
|
|
- block
|
|
VersionAdded: '1.16'
|
|
VersionChanged: '1.22'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReturnFromStub
|
|
|
|
RSpec/ScatteredLet:
|
|
Description: Checks for let scattered across the example group.
|
|
Enabled: true
|
|
AutoCorrect: contextual
|
|
VersionAdded: '1.14'
|
|
VersionChanged: '2.31'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredLet
|
|
|
|
RSpec/ScatteredSetup:
|
|
Description: Checks for setup scattered across multiple hooks in an example group.
|
|
Enabled: true
|
|
AutoCorrect: contextual
|
|
VersionAdded: '1.10'
|
|
VersionChanged: '2.31'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredSetup
|
|
|
|
RSpec/SharedContext:
|
|
Description: Checks for proper shared_context and shared_examples usage.
|
|
Enabled: true
|
|
VersionAdded: '1.13'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedContext
|
|
|
|
RSpec/SharedExamples:
|
|
Description: Checks for consistent style for shared example names.
|
|
Enabled: true
|
|
EnforcedStyle: string
|
|
SupportedStyles:
|
|
- string
|
|
- symbol
|
|
VersionAdded: '1.25'
|
|
VersionChanged: '2.26'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedExamples
|
|
|
|
RSpec/SingleArgumentMessageChain:
|
|
Description: Checks that chains of messages contain more than one element.
|
|
Enabled: true
|
|
VersionAdded: '1.9'
|
|
VersionChanged: '1.10'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SingleArgumentMessageChain
|
|
|
|
RSpec/SkipBlockInsideExample:
|
|
Description: Checks for passing a block to `skip` within examples.
|
|
Enabled: true
|
|
VersionAdded: '2.19'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SkipBlockInsideExample
|
|
|
|
RSpec/SortMetadata:
|
|
Description: Sort RSpec metadata alphabetically.
|
|
Enabled: true
|
|
VersionAdded: '2.14'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SortMetadata
|
|
|
|
RSpec/SpecFilePathFormat:
|
|
Description: Checks that spec file paths are consistent and well-formed.
|
|
Enabled: true
|
|
Include:
|
|
- "**/*_spec.rb"
|
|
Exclude:
|
|
- "**/spec/routing/**/*"
|
|
CustomTransform:
|
|
RuboCop: rubocop
|
|
RSpec: rspec
|
|
IgnoreMethods: false
|
|
IgnoreMetadata:
|
|
type: routing
|
|
InflectorPath: "./config/initializers/inflections.rb"
|
|
SupportedInflectors:
|
|
- default
|
|
- active_support
|
|
EnforcedInflector: default
|
|
VersionAdded: '2.24'
|
|
VersionChanged: '3.8'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SpecFilePathFormat
|
|
|
|
RSpec/SpecFilePathSuffix:
|
|
Description: Checks that spec file paths suffix are consistent and well-formed.
|
|
Enabled: true
|
|
VersionAdded: '2.24'
|
|
Include:
|
|
- "**/*_spec*rb*"
|
|
- "**/spec/**/*"
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SpecFilePathSuffix
|
|
|
|
RSpec/StubbedMock:
|
|
Description: Checks that message expectations do not have a configured response.
|
|
Enabled: true
|
|
VersionAdded: '1.44'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/StubbedMock
|
|
|
|
RSpec/SubjectDeclaration:
|
|
Description: Ensure that subject is defined using subject helper.
|
|
Enabled: true
|
|
VersionAdded: '2.5'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SubjectDeclaration
|
|
|
|
RSpec/SubjectStub:
|
|
Description: Checks for stubbed test subjects.
|
|
Enabled: true
|
|
VersionAdded: '1.7'
|
|
VersionChanged: '2.8'
|
|
StyleGuide: https://rspec.rubystyle.guide/#dont-stub-subject
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SubjectStub
|
|
|
|
RSpec/UndescriptiveLiteralsDescription:
|
|
Description: Description should be descriptive.
|
|
Enabled: true
|
|
VersionAdded: '2.29'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/UndescriptiveLiteralsDescription
|
|
|
|
RSpec/UnspecifiedException:
|
|
Description: Checks for a specified error in checking raised errors.
|
|
Enabled: true
|
|
VersionAdded: '1.30'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/UnspecifiedException
|
|
|
|
RSpec/VariableDefinition:
|
|
Description: Checks that memoized helpers names are symbols or strings.
|
|
Enabled: true
|
|
EnforcedStyle: symbols
|
|
SupportedStyles:
|
|
- symbols
|
|
- strings
|
|
VersionAdded: '1.40'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VariableDefinition
|
|
|
|
RSpec/VariableName:
|
|
Description: Checks that memoized helper names use the configured style.
|
|
Enabled: true
|
|
EnforcedStyle: snake_case
|
|
SupportedStyles:
|
|
- snake_case
|
|
- camelCase
|
|
AllowedPatterns: []
|
|
VersionAdded: '1.40'
|
|
VersionChanged: '2.13'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VariableName
|
|
|
|
RSpec/VerifiedDoubleReference:
|
|
Description: Checks for consistent verified double reference style.
|
|
Enabled: true
|
|
SafeAutoCorrect: false
|
|
VersionAdded: 2.10.0
|
|
VersionChanged: '3.4'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VerifiedDoubleReference
|
|
|
|
RSpec/VerifiedDoubles:
|
|
Description: Prefer using verifying doubles over normal doubles.
|
|
Enabled: true
|
|
IgnoreNameless: true
|
|
IgnoreSymbolicNames: false
|
|
VersionAdded: 1.2.1
|
|
VersionChanged: '1.5'
|
|
StyleGuide: https://rspec.rubystyle.guide/#doubles
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VerifiedDoubles
|
|
|
|
RSpec/VoidExpect:
|
|
Description: Checks void `expect()`.
|
|
Enabled: true
|
|
VersionAdded: '1.16'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VoidExpect
|
|
|
|
RSpec/Yield:
|
|
Description: Checks for calling a block within a stub.
|
|
Enabled: true
|
|
VersionAdded: '1.32'
|
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Yield
|