rubocop-rspec 1.38.1 → 1.43.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +57 -0
- data/CODE_OF_CONDUCT.md +17 -0
- data/README.md +1 -61
- data/config/default.yml +159 -19
- data/lib/rubocop-rspec.rb +5 -2
- data/lib/rubocop/cop/rspec/align_left_let_brace.rb +12 -19
- data/lib/rubocop/cop/rspec/align_right_let_brace.rb +12 -19
- data/lib/rubocop/cop/rspec/any_instance.rb +1 -1
- data/lib/rubocop/cop/rspec/around_block.rb +1 -1
- data/lib/rubocop/cop/rspec/base.rb +74 -0
- data/lib/rubocop/cop/rspec/be.rb +2 -2
- data/lib/rubocop/cop/rspec/be_eql.rb +6 -6
- data/lib/rubocop/cop/rspec/before_after_all.rb +1 -1
- data/lib/rubocop/cop/rspec/capybara/current_path_expectation.rb +19 -17
- data/lib/rubocop/cop/rspec/capybara/feature_methods.rb +14 -12
- data/lib/rubocop/cop/rspec/capybara/visibility_matcher.rb +69 -0
- data/lib/rubocop/cop/rspec/context_method.rb +7 -9
- data/lib/rubocop/cop/rspec/context_wording.rb +3 -3
- data/lib/rubocop/cop/rspec/cop.rb +3 -87
- data/lib/rubocop/cop/rspec/describe_class.rb +29 -23
- data/lib/rubocop/cop/rspec/describe_method.rb +14 -7
- data/lib/rubocop/cop/rspec/describe_symbol.rb +2 -2
- data/lib/rubocop/cop/rspec/described_class.rb +12 -9
- data/lib/rubocop/cop/rspec/described_class_module_wrapping.rb +1 -1
- data/lib/rubocop/cop/rspec/dialect.rb +5 -12
- data/lib/rubocop/cop/rspec/empty_example_group.rb +91 -7
- data/lib/rubocop/cop/rspec/empty_hook.rb +46 -0
- data/lib/rubocop/cop/rspec/empty_line_after_example.rb +5 -7
- data/lib/rubocop/cop/rspec/empty_line_after_example_group.rb +5 -9
- data/lib/rubocop/cop/rspec/empty_line_after_final_let.rb +8 -8
- data/lib/rubocop/cop/rspec/empty_line_after_hook.rb +5 -9
- data/lib/rubocop/cop/rspec/empty_line_after_subject.rb +6 -6
- data/lib/rubocop/cop/rspec/example_length.rb +1 -1
- data/lib/rubocop/cop/rspec/example_without_description.rb +1 -1
- data/lib/rubocop/cop/rspec/example_wording.rb +10 -11
- data/lib/rubocop/cop/rspec/expect_actual.rb +8 -11
- data/lib/rubocop/cop/rspec/expect_change.rb +10 -35
- data/lib/rubocop/cop/rspec/expect_in_hook.rb +3 -3
- data/lib/rubocop/cop/rspec/expect_output.rb +2 -2
- data/lib/rubocop/cop/rspec/factory_bot/attribute_defined_statically.rb +24 -21
- data/lib/rubocop/cop/rspec/factory_bot/create_list.rb +20 -22
- data/lib/rubocop/cop/rspec/factory_bot/factory_class_name.rb +7 -8
- data/lib/rubocop/cop/rspec/file_path.rb +57 -21
- data/lib/rubocop/cop/rspec/focus.rb +7 -11
- data/lib/rubocop/cop/rspec/hook_argument.rb +16 -23
- data/lib/rubocop/cop/rspec/hooks_before_examples.rb +10 -29
- data/lib/rubocop/cop/rspec/implicit_block_expectation.rb +1 -1
- data/lib/rubocop/cop/rspec/implicit_expect.rb +7 -15
- data/lib/rubocop/cop/rspec/implicit_subject.rb +16 -11
- data/lib/rubocop/cop/rspec/instance_spy.rb +18 -12
- data/lib/rubocop/cop/rspec/instance_variable.rb +4 -8
- data/lib/rubocop/cop/rspec/invalid_predicate_matcher.rb +3 -6
- data/lib/rubocop/cop/rspec/it_behaves_like.rb +5 -6
- data/lib/rubocop/cop/rspec/iterated_expectation.rb +1 -1
- data/lib/rubocop/cop/rspec/leading_subject.rb +22 -26
- data/lib/rubocop/cop/rspec/leaky_constant_declaration.rb +2 -5
- data/lib/rubocop/cop/rspec/let_before_examples.rb +10 -26
- data/lib/rubocop/cop/rspec/let_setup.rb +21 -6
- data/lib/rubocop/cop/rspec/message_chain.rb +7 -6
- data/lib/rubocop/cop/rspec/message_expectation.rb +2 -2
- data/lib/rubocop/cop/rspec/message_spies.rb +2 -3
- data/lib/rubocop/cop/rspec/missing_example_group_argument.rb +1 -1
- data/lib/rubocop/cop/rspec/multiple_describes.rb +11 -8
- data/lib/rubocop/cop/rspec/multiple_expectations.rb +7 -11
- data/lib/rubocop/cop/rspec/multiple_memoized_helpers.rb +148 -0
- data/lib/rubocop/cop/rspec/multiple_subjects.rb +18 -19
- data/lib/rubocop/cop/rspec/named_subject.rb +8 -8
- data/lib/rubocop/cop/rspec/nested_groups.rb +12 -13
- data/lib/rubocop/cop/rspec/not_to_not.rb +5 -6
- data/lib/rubocop/cop/rspec/overwriting_setup.rb +1 -1
- data/lib/rubocop/cop/rspec/pending.rb +1 -1
- data/lib/rubocop/cop/rspec/predicate_matcher.rb +32 -69
- data/lib/rubocop/cop/rspec/rails/http_status.rb +7 -9
- data/lib/rubocop/cop/rspec/receive_counts.rb +15 -17
- data/lib/rubocop/cop/rspec/receive_never.rb +12 -12
- data/lib/rubocop/cop/rspec/repeated_description.rb +1 -1
- data/lib/rubocop/cop/rspec/repeated_example.rb +2 -2
- data/lib/rubocop/cop/rspec/repeated_example_group_body.rb +12 -2
- data/lib/rubocop/cop/rspec/repeated_example_group_description.rb +1 -1
- data/lib/rubocop/cop/rspec/return_from_stub.rb +12 -22
- data/lib/rubocop/cop/rspec/scattered_let.rb +12 -2
- data/lib/rubocop/cop/rspec/scattered_setup.rb +1 -1
- data/lib/rubocop/cop/rspec/shared_context.rb +8 -21
- data/lib/rubocop/cop/rspec/shared_examples.rb +7 -9
- data/lib/rubocop/cop/rspec/single_argument_message_chain.rb +15 -18
- data/lib/rubocop/cop/rspec/subject_stub.rb +25 -53
- data/lib/rubocop/cop/rspec/unspecified_exception.rb +1 -1
- data/lib/rubocop/cop/rspec/variable_definition.rb +56 -0
- data/lib/rubocop/cop/rspec/variable_name.rb +66 -0
- data/lib/rubocop/cop/rspec/verified_doubles.rb +1 -1
- data/lib/rubocop/cop/rspec/void_expect.rb +1 -1
- data/lib/rubocop/cop/rspec/yield.rb +14 -11
- data/lib/rubocop/cop/rspec_cops.rb +6 -1
- data/lib/rubocop/rspec/corrector/move_node.rb +54 -0
- data/lib/rubocop/rspec/description_extractor.rb +2 -6
- data/lib/rubocop/rspec/{blank_line_separation.rb → empty_line_separation.rb} +13 -10
- data/lib/rubocop/rspec/example_group.rb +21 -49
- data/lib/rubocop/rspec/factory_bot.rb +7 -1
- data/lib/rubocop/rspec/language.rb +13 -3
- data/lib/rubocop/rspec/language/node_pattern.rb +11 -2
- data/lib/rubocop/rspec/top_level_describe.rb +2 -2
- data/lib/rubocop/rspec/top_level_group.rb +55 -0
- data/lib/rubocop/rspec/variable.rb +16 -0
- data/lib/rubocop/rspec/version.rb +1 -1
- metadata +36 -13
- data/lib/rubocop/rspec/util.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: afae94ff975b0caf19f7aa7cad514296a15cb28afc2c4ae18dba8bb8446290d2
|
4
|
+
data.tar.gz: 15fa2c9138a72d6c54247ea384793abbf9c3d6f8eaa2d7346803c8a296b7335c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4552fb307a57b49ed209ac12a30744b97cfd5bc57460a2a385a16a176903f439083a634e92a8f4faf308c3cca570a79bc8ba85b8a51ceff295920614f1bfe95b
|
7
|
+
data.tar.gz: f6b9ed4c0d486fb41c477f6b9d95b7a8897b2011f80bc91edd1a872dca11fce0e5de05387f5e0a3112a0849f371fa93c1eba220019ff5b81ba9959daf06e089c
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,49 @@
|
|
2
2
|
|
3
3
|
## Master (Unreleased)
|
4
4
|
|
5
|
+
## 1.43.0 (2020-08-17)
|
6
|
+
|
7
|
+
* Add a new base cop class `::RuboCop::Cop::RSpec::Base`. The old base class `::RuboCop::Cop::RSpec::Cop` is deprecated, and will be removed in the next major release. ([@bquorning][])
|
8
|
+
* Add support for subject detection after includes and example groups in `RSpec/LeadingSubject`. ([@pirj][])
|
9
|
+
* Ignore trailing punctuation in context description prefix. ([@elliterate][])
|
10
|
+
* Relax `RSpec/VariableDefinition` cop so interpolated and multiline strings are accepted even when configured to enforce the `symbol` style. ([@bquorning][])
|
11
|
+
* Fix `RSpec/EmptyExampleGroup` to flag example groups with examples in invalid scopes. ([@mlarraz][])
|
12
|
+
* Fix `RSpec/EmptyExampleGroup` to ignore examples groups with examples defined inside iterators. ([@pirj][])
|
13
|
+
* Improve `RSpec/NestedGroups`, `RSpec/FilePath`, `RSpec/DescribeMethod`, `RSpec/MultipleDescribes`, `RSpec/DescribeClass`'s top-level example group detection. ([@pirj][])
|
14
|
+
* Add detection of `let!` with a block-pass or a string literal to `RSpec/LetSetup`. ([@pirj][])
|
15
|
+
* Add `IgnoredPatterns` configuration option to `RSpec/VariableName`. ([@jtannas][])
|
16
|
+
* Add `RSpec/MultipleMemoizedHelpers` cop. ([@mockdeep][])
|
17
|
+
|
18
|
+
## 1.42.0 (2020-07-09)
|
19
|
+
|
20
|
+
* Update RuboCop dependency to 0.87.0 because of changes to internal APIs. ([@bquorning][], [@Darhazer][])
|
21
|
+
|
22
|
+
## 1.41.0 (2020-07-03)
|
23
|
+
|
24
|
+
* Extend the list of Rails spec types for `RSpec/DescribeClass`. ([@pirj][])
|
25
|
+
* Fix `FactoryBot/AttributeDefinedStatically` to allow `#traits_for_enum` without a block. ([@harrylewis][])
|
26
|
+
* Improve the performance of `FactoryBot/AttributeDefinedStatically`, `RSpec/InstanceVariable`, `RSpec/LetSetup`, `RSpec/NestedGroups` and `RSpec/ReturnFromStub`. ([@andrykonchin][])
|
27
|
+
|
28
|
+
## 1.40.0 (2020-06-11)
|
29
|
+
|
30
|
+
* Add new `RSpec/VariableName` cop. ([@tejasbubane][])
|
31
|
+
* Add new `RSpec/VariableDefinition` cop. ([@tejasbubane][])
|
32
|
+
* Expand `Capybara/VisibilityMatcher` to support more than just `have_selector`. ([@twalpole][])
|
33
|
+
* Add new `SpecSuffixOnly` option to `RSpec/FilePath` cop. ([@zdennis][])
|
34
|
+
* Allow `RSpec/RepeatedExampleGroupBody` to differ only by described_class. ([@robotdana][])
|
35
|
+
* Fix `RSpec/FilePath` detection across sibling directories. ([@rolfschmidt][])
|
36
|
+
* Improve the performance of `RSpec/SubjectStub` by an order of magnitude. ([@andrykonchin][])
|
37
|
+
|
38
|
+
## 1.39.0 (2020-05-01)
|
39
|
+
|
40
|
+
* Fix `RSpec/FilePath` detection when absolute path includes test subject. ([@eitoball][])
|
41
|
+
* Add new `Capybara/VisibilityMatcher` cop. ([@aried3r][])
|
42
|
+
* Ignore String constants by `RSpec/Describe`. ([@AlexWayfer][])
|
43
|
+
* Drop support for ruby 2.3. ([@bquorning][])
|
44
|
+
* Fix multiple cops to detect `let` with proc argument. ([@tejasbubane][])
|
45
|
+
* Add autocorrect support for `RSpec/ScatteredLet`. ([@Darhazer][])
|
46
|
+
* Add new `RSpec/EmptyHook` cop. ([@tejasbubane][])
|
47
|
+
|
5
48
|
## 1.38.1 (2020-02-15)
|
6
49
|
|
7
50
|
* Fix `RSpec/RepeatedDescription` to detect descriptions with interpolation and methods. ([@lazycoder9][])
|
@@ -489,3 +532,17 @@ Compatibility release so users can upgrade RuboCop to 0.51.0. No new features.
|
|
489
532
|
[@dduugg]: https://github.com/dduugg
|
490
533
|
[@lazycoder9]: https://github.com/lazycoder9
|
491
534
|
[@elebow]: https://github.com/elebow
|
535
|
+
[@eitoball]: https://github.com/eitoball
|
536
|
+
[@aried3r]: https://github.com/aried3r
|
537
|
+
[@AlexWayfer]: https://github.com/AlexWayfer
|
538
|
+
[@tejasbubane]: https://github.com/tejasbubane
|
539
|
+
[@twalpole]: https://github.com/twalpole
|
540
|
+
[@zdennis]: https://github.com/zdennis
|
541
|
+
[@robotdana]: https://github.com/robotdana
|
542
|
+
[@rolfschmidt]: https://github.com/rolfschmidt
|
543
|
+
[@andrykonchin]: https://github.com/andrykonchin
|
544
|
+
[@harrylewis]: https://github.com/harrylewis
|
545
|
+
[@elliterate]: https://github.com/elliterate
|
546
|
+
[@mlarraz]: https://github.com/mlarraz
|
547
|
+
[@jtannas]: https://github.com/jtannas
|
548
|
+
[@mockdeep]: https://github.com/mockdeep
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# The RuboCop Community Code of Conduct
|
2
|
+
|
3
|
+
**Note:** We have picked the following code of conduct based on [Ruby's own
|
4
|
+
code of conduct](https://www.ruby-lang.org/en/conduct/).
|
5
|
+
|
6
|
+
This document provides a few simple community guidelines for a safe, respectful,
|
7
|
+
productive, and collaborative place for any person who is willing to contribute
|
8
|
+
to the RuboCop community. It applies to all "collaborative spaces", which are
|
9
|
+
defined as community communications channels (such as mailing lists, submitted
|
10
|
+
patches, commit comments, etc.).
|
11
|
+
|
12
|
+
* Participants will be tolerant of opposing views.
|
13
|
+
* Participants must ensure that their language and actions are free of personal
|
14
|
+
attacks and disparaging personal remarks.
|
15
|
+
* When interpreting the words and actions of others, participants should always
|
16
|
+
assume good intentions.
|
17
|
+
* Behaviour which can be reasonably considered harassment will not be tolerated.
|
data/README.md
CHANGED
@@ -67,27 +67,7 @@ rubocop-rspec is available on Code Climate as part of the rubocop engine. [Learn
|
|
67
67
|
|
68
68
|
## Documentation
|
69
69
|
|
70
|
-
You can read more about RuboCop-RSpec in its [official manual](
|
71
|
-
|
72
|
-
## Inspecting files that don't end with `_spec.rb`
|
73
|
-
|
74
|
-
By default, `rubocop-rspec` only inspects code within paths ending in `_spec.rb` or including `spec/`. You can override this setting in your config file by specifying one or more patterns:
|
75
|
-
|
76
|
-
```yaml
|
77
|
-
# Inspect all files
|
78
|
-
AllCops:
|
79
|
-
RSpec:
|
80
|
-
Patterns:
|
81
|
-
- '.+'
|
82
|
-
```
|
83
|
-
|
84
|
-
```yaml
|
85
|
-
# Inspect only files ending with `_test.rb`
|
86
|
-
AllCops:
|
87
|
-
RSpec:
|
88
|
-
Patterns:
|
89
|
-
- '_test.rb$'
|
90
|
-
```
|
70
|
+
You can read more about RuboCop-RSpec in its [official manual](https://docs.rubocop.org/rubocop-rspec).
|
91
71
|
|
92
72
|
## The Cops
|
93
73
|
|
@@ -104,46 +84,6 @@ RSpec/FilePath:
|
|
104
84
|
- spec/my_poorly_named_spec_file.rb
|
105
85
|
```
|
106
86
|
|
107
|
-
## Non-goals of RuboCop RSpec
|
108
|
-
|
109
|
-
### Enforcing `should` vs. `expect` syntax
|
110
|
-
|
111
|
-
Enforcing
|
112
|
-
|
113
|
-
```ruby
|
114
|
-
expect(calculator.compute(line_item)).to eq(5)
|
115
|
-
```
|
116
|
-
|
117
|
-
over
|
118
|
-
|
119
|
-
```ruby
|
120
|
-
calculator.compute(line_item).should == 5
|
121
|
-
```
|
122
|
-
|
123
|
-
is a feature of RSpec itself – you can read about it in the [RSpec Documentation](https://relishapp.com/rspec/rspec-expectations/docs/syntax-configuration#disable-should-syntax)
|
124
|
-
|
125
|
-
### Enforcing an explicit RSpec receiver for top-level methods (disabling monkey patching)
|
126
|
-
|
127
|
-
Enforcing
|
128
|
-
|
129
|
-
```ruby
|
130
|
-
RSpec.describe MyClass do
|
131
|
-
...
|
132
|
-
end
|
133
|
-
```
|
134
|
-
|
135
|
-
over
|
136
|
-
|
137
|
-
```ruby
|
138
|
-
describe MyClass do
|
139
|
-
...
|
140
|
-
end
|
141
|
-
```
|
142
|
-
|
143
|
-
can be achieved using RSpec's `disable_monkey_patching!` method, which you can read more about in the [RSpec Documentation](https://relishapp.com/rspec/rspec-core/v/3-7/docs/configuration/zero-monkey-patching-mode#monkey-patched-methods-are-undefined-with-%60disable-monkey-patching!%60). This will also prevent `should` from being defined on every object in your system.
|
144
|
-
|
145
|
-
Before disabling `should` you will need all your specs to use the `expect` syntax. You can use [Transpec](http://yujinakayama.me/transpec/), which will do the conversion for you.
|
146
|
-
|
147
87
|
## Contributing
|
148
88
|
|
149
89
|
Checkout the [contribution guidelines](.github/CONTRIBUTING.md).
|
data/config/default.yml
CHANGED
@@ -13,31 +13,37 @@ AllCops:
|
|
13
13
|
RSpec/AlignLeftLetBrace:
|
14
14
|
Description: Checks that left braces for adjacent single line lets are aligned.
|
15
15
|
Enabled: false
|
16
|
+
VersionAdded: '1.16'
|
16
17
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AlignLeftLetBrace
|
17
18
|
|
18
19
|
RSpec/AlignRightLetBrace:
|
19
20
|
Description: Checks that right braces for adjacent single line lets are aligned.
|
20
21
|
Enabled: false
|
22
|
+
VersionAdded: '1.16'
|
21
23
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AlignRightLetBrace
|
22
24
|
|
23
25
|
RSpec/AnyInstance:
|
24
26
|
Description: Check that instances are not being stubbed globally.
|
25
27
|
Enabled: true
|
28
|
+
VersionAdded: '1.4'
|
26
29
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AnyInstance
|
27
30
|
|
28
31
|
RSpec/AroundBlock:
|
29
32
|
Description: Checks that around blocks actually run the test.
|
30
33
|
Enabled: true
|
34
|
+
VersionAdded: '1.11'
|
31
35
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/AroundBlock
|
32
36
|
|
33
37
|
RSpec/Be:
|
34
38
|
Description: Check for expectations where `be` is used without argument.
|
35
39
|
Enabled: true
|
40
|
+
VersionAdded: '1.25'
|
36
41
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Be
|
37
42
|
|
38
43
|
RSpec/BeEql:
|
39
44
|
Description: Check for expectations where `be(...)` can replace `eql(...)`.
|
40
45
|
Enabled: true
|
46
|
+
VersionAdded: '1.7'
|
41
47
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeEql
|
42
48
|
|
43
49
|
RSpec/BeforeAfterAll:
|
@@ -47,11 +53,13 @@ RSpec/BeforeAfterAll:
|
|
47
53
|
- spec/spec_helper.rb
|
48
54
|
- spec/rails_helper.rb
|
49
55
|
- spec/support/**/*.rb
|
56
|
+
VersionAdded: '1.12'
|
50
57
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeforeAfterAll
|
51
58
|
|
52
59
|
RSpec/ContextMethod:
|
53
60
|
Description: "`context` should not be used for specifying methods."
|
54
61
|
Enabled: true
|
62
|
+
VersionAdded: '1.36'
|
55
63
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContextMethod
|
56
64
|
|
57
65
|
RSpec/ContextWording:
|
@@ -61,80 +69,103 @@ RSpec/ContextWording:
|
|
61
69
|
- when
|
62
70
|
- with
|
63
71
|
- without
|
72
|
+
VersionAdded: '1.20'
|
73
|
+
VersionChanged: 1.20.1
|
64
74
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContextWording
|
65
75
|
|
66
76
|
RSpec/DescribeClass:
|
67
|
-
Description: Check that the first argument to the top
|
77
|
+
Description: Check that the first argument to the top-level describe is a constant.
|
68
78
|
Enabled: true
|
79
|
+
VersionAdded: '1.0'
|
69
80
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeClass
|
70
81
|
|
71
82
|
RSpec/DescribeMethod:
|
72
83
|
Description: Checks that the second argument to `describe` specifies a method.
|
73
84
|
Enabled: true
|
85
|
+
VersionAdded: '1.0'
|
74
86
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeMethod
|
75
87
|
|
76
88
|
RSpec/DescribeSymbol:
|
77
89
|
Description: Avoid describing symbols.
|
78
90
|
Enabled: true
|
91
|
+
VersionAdded: '1.15'
|
79
92
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeSymbol
|
80
93
|
|
81
94
|
RSpec/DescribedClass:
|
82
95
|
Description: Checks that tests use `described_class`.
|
83
|
-
SkipBlocks: false
|
84
96
|
Enabled: true
|
97
|
+
SkipBlocks: false
|
85
98
|
EnforcedStyle: described_class
|
86
99
|
SupportedStyles:
|
87
100
|
- described_class
|
88
101
|
- explicit
|
102
|
+
SafeAutoCorrect: false
|
103
|
+
VersionAdded: '1.0'
|
104
|
+
VersionChanged: '1.11'
|
89
105
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribedClass
|
90
106
|
|
91
107
|
RSpec/DescribedClassModuleWrapping:
|
92
108
|
Description: Avoid opening modules and defining specs within them.
|
93
109
|
Enabled: false
|
110
|
+
VersionAdded: '1.37'
|
94
111
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribedClassModuleWrapping
|
95
112
|
|
96
113
|
RSpec/Dialect:
|
97
114
|
Description: This cop enforces custom RSpec dialects.
|
98
115
|
Enabled: false
|
99
116
|
PreferredMethods: {}
|
117
|
+
VersionAdded: '1.33'
|
100
118
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Dialect
|
101
119
|
|
102
120
|
RSpec/EmptyExampleGroup:
|
103
121
|
Description: Checks if an example group does not include any tests.
|
104
122
|
Enabled: true
|
105
123
|
CustomIncludeMethods: []
|
124
|
+
VersionAdded: '1.7'
|
106
125
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyExampleGroup
|
107
126
|
|
127
|
+
RSpec/EmptyHook:
|
128
|
+
Description: Checks for empty before and after hooks.
|
129
|
+
Enabled: true
|
130
|
+
VersionAdded: '1.39'
|
131
|
+
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyHook
|
132
|
+
|
108
133
|
RSpec/EmptyLineAfterExample:
|
109
134
|
Description: Checks if there is an empty line after example blocks.
|
110
135
|
Enabled: true
|
111
136
|
AllowConsecutiveOneLiners: true
|
137
|
+
VersionAdded: '1.36'
|
112
138
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExample
|
113
139
|
|
114
140
|
RSpec/EmptyLineAfterExampleGroup:
|
115
141
|
Description: Checks if there is an empty line after example group blocks.
|
116
142
|
Enabled: true
|
143
|
+
VersionAdded: '1.27'
|
117
144
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExampleGroup
|
118
145
|
|
119
146
|
RSpec/EmptyLineAfterFinalLet:
|
120
147
|
Description: Checks if there is an empty line after the last let block.
|
121
148
|
Enabled: true
|
149
|
+
VersionAdded: '1.14'
|
122
150
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterFinalLet
|
123
151
|
|
124
152
|
RSpec/EmptyLineAfterHook:
|
125
153
|
Description: Checks if there is an empty line after hook blocks.
|
126
154
|
Enabled: true
|
155
|
+
VersionAdded: '1.27'
|
127
156
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterHook
|
128
157
|
|
129
158
|
RSpec/EmptyLineAfterSubject:
|
130
159
|
Description: Checks if there is an empty line after subject block.
|
131
160
|
Enabled: true
|
161
|
+
VersionAdded: '1.14'
|
132
162
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterSubject
|
133
163
|
|
134
164
|
RSpec/ExampleLength:
|
135
165
|
Description: Checks for long examples.
|
136
166
|
Enabled: true
|
137
167
|
Max: 5
|
168
|
+
VersionAdded: '1.5'
|
138
169
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleLength
|
139
170
|
|
140
171
|
RSpec/ExampleWithoutDescription:
|
@@ -145,6 +176,7 @@ RSpec/ExampleWithoutDescription:
|
|
145
176
|
- always_allow
|
146
177
|
- single_line_only
|
147
178
|
- disallow
|
179
|
+
VersionAdded: '1.22'
|
148
180
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWithoutDescription
|
149
181
|
|
150
182
|
RSpec/ExampleWording:
|
@@ -156,6 +188,8 @@ RSpec/ExampleWording:
|
|
156
188
|
have: has
|
157
189
|
HAVE: HAS
|
158
190
|
IgnoredWords: []
|
191
|
+
VersionAdded: '1.0'
|
192
|
+
VersionChanged: '1.2'
|
159
193
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWording
|
160
194
|
|
161
195
|
RSpec/ExpectActual:
|
@@ -163,6 +197,7 @@ RSpec/ExpectActual:
|
|
163
197
|
Enabled: true
|
164
198
|
Exclude:
|
165
199
|
- spec/routing/**/*
|
200
|
+
VersionAdded: '1.7'
|
166
201
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectActual
|
167
202
|
|
168
203
|
RSpec/ExpectChange:
|
@@ -172,30 +207,37 @@ RSpec/ExpectChange:
|
|
172
207
|
SupportedStyles:
|
173
208
|
- method_call
|
174
209
|
- block
|
210
|
+
VersionAdded: '1.22'
|
175
211
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectChange
|
176
212
|
|
177
213
|
RSpec/ExpectInHook:
|
178
|
-
Enabled: true
|
179
214
|
Description: Do not use `expect` in hooks such as `before`.
|
215
|
+
Enabled: true
|
216
|
+
VersionAdded: '1.16'
|
180
217
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInHook
|
181
218
|
|
182
219
|
RSpec/ExpectOutput:
|
183
220
|
Description: Checks for opportunities to use `expect { ... }.to output`.
|
184
221
|
Enabled: true
|
222
|
+
VersionAdded: '1.10'
|
185
223
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectOutput
|
186
224
|
|
187
225
|
RSpec/FilePath:
|
188
|
-
Description: Checks that spec file paths are consistent
|
226
|
+
Description: Checks that spec file paths are consistent and well-formed.
|
189
227
|
Enabled: true
|
190
228
|
CustomTransform:
|
191
229
|
RuboCop: rubocop
|
192
230
|
RSpec: rspec
|
193
231
|
IgnoreMethods: false
|
232
|
+
SpecSuffixOnly: false
|
233
|
+
VersionAdded: '1.2'
|
234
|
+
VersionChanged: '1.40'
|
194
235
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FilePath
|
195
236
|
|
196
237
|
RSpec/Focus:
|
197
238
|
Description: Checks if examples are focused.
|
198
239
|
Enabled: true
|
240
|
+
VersionAdded: '1.5'
|
199
241
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Focus
|
200
242
|
|
201
243
|
RSpec/HookArgument:
|
@@ -206,16 +248,19 @@ RSpec/HookArgument:
|
|
206
248
|
- implicit
|
207
249
|
- each
|
208
250
|
- example
|
251
|
+
VersionAdded: '1.7'
|
209
252
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HookArgument
|
210
253
|
|
211
254
|
RSpec/HooksBeforeExamples:
|
212
|
-
Enabled: true
|
213
255
|
Description: Checks for before/around/after hooks that come after an example.
|
256
|
+
Enabled: true
|
257
|
+
VersionAdded: '1.29'
|
214
258
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HooksBeforeExamples
|
215
259
|
|
216
260
|
RSpec/ImplicitBlockExpectation:
|
217
261
|
Description: Check that implicit block expectation syntax is not used.
|
218
262
|
Enabled: true
|
263
|
+
VersionAdded: '1.35'
|
219
264
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitBlockExpectation
|
220
265
|
|
221
266
|
RSpec/ImplicitExpect:
|
@@ -225,32 +270,39 @@ RSpec/ImplicitExpect:
|
|
225
270
|
SupportedStyles:
|
226
271
|
- is_expected
|
227
272
|
- should
|
273
|
+
VersionAdded: '1.8'
|
228
274
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitExpect
|
229
275
|
|
230
276
|
RSpec/ImplicitSubject:
|
231
|
-
Enabled: true
|
232
277
|
Description: Checks for usage of implicit subject (`is_expected` / `should`).
|
278
|
+
Enabled: true
|
233
279
|
EnforcedStyle: single_line_only
|
234
280
|
SupportedStyles:
|
235
281
|
- single_line_only
|
236
282
|
- single_statement_only
|
237
283
|
- disallow
|
284
|
+
VersionAdded: '1.29'
|
285
|
+
VersionChanged: '1.30'
|
238
286
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitSubject
|
239
287
|
|
240
288
|
RSpec/InstanceSpy:
|
241
289
|
Description: Checks for `instance_double` used with `have_received`.
|
242
290
|
Enabled: true
|
291
|
+
VersionAdded: '1.12'
|
243
292
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceSpy
|
244
293
|
|
245
294
|
RSpec/InstanceVariable:
|
246
295
|
Description: Checks for instance variable usage in specs.
|
247
|
-
AssignmentOnly: false
|
248
296
|
Enabled: true
|
297
|
+
AssignmentOnly: false
|
298
|
+
VersionAdded: '1.0'
|
299
|
+
VersionChanged: '1.7'
|
249
300
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceVariable
|
250
301
|
|
251
302
|
RSpec/InvalidPredicateMatcher:
|
252
303
|
Description: Checks invalid usage for predicate matcher.
|
253
304
|
Enabled: true
|
305
|
+
VersionAdded: '1.16'
|
254
306
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InvalidPredicateMatcher
|
255
307
|
|
256
308
|
RSpec/ItBehavesLike:
|
@@ -260,36 +312,45 @@ RSpec/ItBehavesLike:
|
|
260
312
|
SupportedStyles:
|
261
313
|
- it_behaves_like
|
262
314
|
- it_should_behave_like
|
315
|
+
VersionAdded: '1.13'
|
263
316
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ItBehavesLike
|
264
317
|
|
265
318
|
RSpec/IteratedExpectation:
|
266
319
|
Description: Check that `all` matcher is used instead of iterating over an array.
|
267
320
|
Enabled: true
|
321
|
+
VersionAdded: '1.14'
|
268
322
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IteratedExpectation
|
269
323
|
|
270
324
|
RSpec/LeadingSubject:
|
271
325
|
Description: Enforce that subject is the first definition in the test.
|
272
326
|
Enabled: true
|
327
|
+
VersionAdded: '1.7'
|
328
|
+
VersionChanged: '1.14'
|
273
329
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeadingSubject
|
274
330
|
|
275
331
|
RSpec/LeakyConstantDeclaration:
|
276
332
|
Description: Checks that no class, module, or constant is declared.
|
277
333
|
Enabled: true
|
334
|
+
VersionAdded: '1.35'
|
278
335
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeakyConstantDeclaration
|
279
336
|
|
280
337
|
RSpec/LetBeforeExamples:
|
281
338
|
Description: Checks for `let` definitions that come after an example.
|
282
339
|
Enabled: true
|
340
|
+
VersionAdded: '1.16'
|
341
|
+
VersionChanged: '1.22'
|
283
342
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetBeforeExamples
|
284
343
|
|
285
344
|
RSpec/LetSetup:
|
286
345
|
Description: Checks unreferenced `let!` calls being used for test setup.
|
287
346
|
Enabled: true
|
347
|
+
VersionAdded: '1.7'
|
288
348
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetSetup
|
289
349
|
|
290
350
|
RSpec/MessageChain:
|
291
351
|
Description: Check that chains of messages are not being stubbed.
|
292
352
|
Enabled: true
|
353
|
+
VersionAdded: '1.7'
|
293
354
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageChain
|
294
355
|
|
295
356
|
RSpec/MessageExpectation:
|
@@ -299,6 +360,8 @@ RSpec/MessageExpectation:
|
|
299
360
|
SupportedStyles:
|
300
361
|
- allow
|
301
362
|
- expect
|
363
|
+
VersionAdded: '1.7'
|
364
|
+
VersionChanged: '1.8'
|
302
365
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageExpectation
|
303
366
|
|
304
367
|
RSpec/MessageSpies:
|
@@ -308,59 +371,78 @@ RSpec/MessageSpies:
|
|
308
371
|
SupportedStyles:
|
309
372
|
- have_received
|
310
373
|
- receive
|
374
|
+
VersionAdded: '1.9'
|
311
375
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageSpies
|
312
376
|
|
313
377
|
RSpec/MissingExampleGroupArgument:
|
314
378
|
Description: Checks that the first argument to an example group is not empty.
|
315
379
|
Enabled: true
|
380
|
+
VersionAdded: '1.28'
|
316
381
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MissingExampleGroupArgument
|
317
382
|
|
318
383
|
RSpec/MultipleDescribes:
|
319
|
-
Description: Checks for multiple top
|
384
|
+
Description: Checks for multiple top-level example groups.
|
320
385
|
Enabled: true
|
386
|
+
VersionAdded: '1.0'
|
321
387
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleDescribes
|
322
388
|
|
323
389
|
RSpec/MultipleExpectations:
|
324
390
|
Description: Checks if examples contain too many `expect` calls.
|
325
391
|
Enabled: true
|
326
392
|
Max: 1
|
327
|
-
|
393
|
+
VersionAdded: '1.7'
|
394
|
+
VersionChanged: '1.21'
|
328
395
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleExpectations
|
329
396
|
|
397
|
+
RSpec/MultipleMemoizedHelpers:
|
398
|
+
Description: Checks if example groups contain too many `let` and `subject` calls.
|
399
|
+
Enabled: true
|
400
|
+
AllowSubject: true
|
401
|
+
Max: 5
|
402
|
+
VersionAdded: '1.43'
|
403
|
+
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleMemoizedHelpers
|
404
|
+
|
330
405
|
RSpec/MultipleSubjects:
|
331
406
|
Description: Checks if an example group defines `subject` multiple times.
|
332
407
|
Enabled: true
|
408
|
+
VersionAdded: '1.16'
|
333
409
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleSubjects
|
334
410
|
|
335
411
|
RSpec/NamedSubject:
|
336
412
|
Description: Checks for explicitly referenced test subjects.
|
337
413
|
Enabled: true
|
338
414
|
IgnoreSharedExamples: true
|
415
|
+
VersionAdded: 1.5.3
|
339
416
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NamedSubject
|
340
417
|
|
341
418
|
RSpec/NestedGroups:
|
342
419
|
Description: Checks for nested example groups.
|
343
420
|
Enabled: true
|
344
421
|
Max: 3
|
422
|
+
VersionAdded: '1.7'
|
423
|
+
VersionChanged: '1.10'
|
345
424
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NestedGroups
|
346
425
|
|
347
426
|
RSpec/NotToNot:
|
348
427
|
Description: Checks for consistent method usage for negating expectations.
|
428
|
+
Enabled: true
|
349
429
|
EnforcedStyle: not_to
|
350
430
|
SupportedStyles:
|
351
431
|
- not_to
|
352
432
|
- to_not
|
353
|
-
|
433
|
+
VersionAdded: '1.4'
|
354
434
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NotToNot
|
355
435
|
|
356
436
|
RSpec/OverwritingSetup:
|
357
|
-
Enabled: true
|
358
437
|
Description: Checks if there is a let/subject that overwrites an existing one.
|
438
|
+
Enabled: true
|
439
|
+
VersionAdded: '1.14'
|
359
440
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/OverwritingSetup
|
360
441
|
|
361
442
|
RSpec/Pending:
|
362
|
-
Enabled: false
|
363
443
|
Description: Checks for any pending or skipped examples.
|
444
|
+
Enabled: false
|
445
|
+
VersionAdded: '1.25'
|
364
446
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Pending
|
365
447
|
|
366
448
|
RSpec/PredicateMatcher:
|
@@ -372,113 +454,168 @@ RSpec/PredicateMatcher:
|
|
372
454
|
SupportedStyles:
|
373
455
|
- inflected
|
374
456
|
- explicit
|
457
|
+
SafeAutoCorrect: false
|
458
|
+
VersionAdded: '1.16'
|
375
459
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/PredicateMatcher
|
376
460
|
|
377
461
|
RSpec/ReceiveCounts:
|
378
|
-
Enabled: true
|
379
462
|
Description: Check for `once` and `twice` receive counts matchers usage.
|
463
|
+
Enabled: true
|
464
|
+
VersionAdded: '1.26'
|
380
465
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveCounts
|
381
466
|
|
382
467
|
RSpec/ReceiveNever:
|
383
|
-
Enabled: true
|
384
468
|
Description: Prefer `not_to receive(...)` over `receive(...).never`.
|
469
|
+
Enabled: true
|
470
|
+
VersionAdded: '1.28'
|
385
471
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveNever
|
386
472
|
|
387
473
|
RSpec/RepeatedDescription:
|
388
|
-
Enabled: true
|
389
474
|
Description: Check for repeated description strings in example groups.
|
475
|
+
Enabled: true
|
476
|
+
VersionAdded: '1.9'
|
390
477
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedDescription
|
391
478
|
|
392
479
|
RSpec/RepeatedExample:
|
393
|
-
Enabled: true
|
394
480
|
Description: Check for repeated examples within example groups.
|
481
|
+
Enabled: true
|
482
|
+
VersionAdded: '1.10'
|
395
483
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExample
|
396
484
|
|
397
485
|
RSpec/RepeatedExampleGroupBody:
|
398
|
-
Enabled: true
|
399
486
|
Description: Check for repeated describe and context block body.
|
487
|
+
Enabled: true
|
488
|
+
VersionAdded: '1.38'
|
400
489
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupBody
|
401
490
|
|
402
491
|
RSpec/RepeatedExampleGroupDescription:
|
403
|
-
Enabled: true
|
404
492
|
Description: Check for repeated example group descriptions.
|
493
|
+
Enabled: true
|
494
|
+
VersionAdded: '1.38'
|
405
495
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupDescription
|
406
496
|
|
407
497
|
RSpec/ReturnFromStub:
|
408
|
-
Enabled: true
|
409
498
|
Description: Checks for consistent style of stub's return setting.
|
499
|
+
Enabled: true
|
410
500
|
EnforcedStyle: and_return
|
411
501
|
SupportedStyles:
|
412
502
|
- and_return
|
413
503
|
- block
|
504
|
+
VersionAdded: '1.16'
|
505
|
+
VersionChanged: '1.22'
|
414
506
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReturnFromStub
|
415
507
|
|
416
508
|
RSpec/ScatteredLet:
|
417
509
|
Description: Checks for let scattered across the example group.
|
418
510
|
Enabled: true
|
511
|
+
VersionAdded: '1.14'
|
512
|
+
VersionChanged: '1.39'
|
419
513
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredLet
|
420
514
|
|
421
515
|
RSpec/ScatteredSetup:
|
422
516
|
Description: Checks for setup scattered across multiple hooks in an example group.
|
423
517
|
Enabled: true
|
518
|
+
VersionAdded: '1.10'
|
424
519
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredSetup
|
425
520
|
|
426
521
|
RSpec/SharedContext:
|
427
522
|
Description: Checks for proper shared_context and shared_examples usage.
|
428
523
|
Enabled: true
|
524
|
+
VersionAdded: '1.13'
|
429
525
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedContext
|
430
526
|
|
431
527
|
RSpec/SharedExamples:
|
432
528
|
Description: Enforces use of string to titleize shared examples.
|
433
529
|
Enabled: true
|
530
|
+
VersionAdded: '1.25'
|
434
531
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedExamples
|
435
532
|
|
436
533
|
RSpec/SingleArgumentMessageChain:
|
437
534
|
Description: Checks that chains of messages contain more than one element.
|
438
535
|
Enabled: true
|
536
|
+
VersionAdded: '1.9'
|
537
|
+
VersionChanged: '1.10'
|
439
538
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SingleArgumentMessageChain
|
440
539
|
|
441
540
|
RSpec/SubjectStub:
|
442
541
|
Description: Checks for stubbed test subjects.
|
443
542
|
Enabled: true
|
543
|
+
VersionAdded: '1.7'
|
444
544
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SubjectStub
|
445
545
|
|
446
546
|
RSpec/UnspecifiedException:
|
447
547
|
Description: Checks for a specified error in checking raised errors.
|
448
548
|
Enabled: true
|
549
|
+
VersionAdded: '1.30'
|
449
550
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/UnspecifiedException
|
450
551
|
|
552
|
+
RSpec/VariableDefinition:
|
553
|
+
Description: Checks that memoized helpers names are symbols or strings.
|
554
|
+
Enabled: true
|
555
|
+
EnforcedStyle: symbols
|
556
|
+
SupportedStyles:
|
557
|
+
- symbols
|
558
|
+
- strings
|
559
|
+
VersionAdded: '1.40'
|
560
|
+
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VariableDefinition
|
561
|
+
|
562
|
+
RSpec/VariableName:
|
563
|
+
Description: Checks that memoized helper names use the configured style.
|
564
|
+
Enabled: true
|
565
|
+
EnforcedStyle: snake_case
|
566
|
+
SupportedStyles:
|
567
|
+
- snake_case
|
568
|
+
- camelCase
|
569
|
+
IgnoredPatterns: []
|
570
|
+
VersionAdded: '1.40'
|
571
|
+
VersionChanged: '1.43'
|
572
|
+
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VariableName
|
573
|
+
|
451
574
|
RSpec/VerifiedDoubles:
|
452
575
|
Description: Prefer using verifying doubles over normal doubles.
|
453
576
|
Enabled: true
|
454
577
|
IgnoreNameless: true
|
455
578
|
IgnoreSymbolicNames: false
|
579
|
+
VersionAdded: 1.2.1
|
580
|
+
VersionChanged: '1.5'
|
456
581
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VerifiedDoubles
|
457
582
|
|
458
583
|
RSpec/VoidExpect:
|
459
584
|
Description: This cop checks void `expect()`.
|
460
585
|
Enabled: true
|
586
|
+
VersionAdded: '1.16'
|
461
587
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VoidExpect
|
462
588
|
|
463
589
|
RSpec/Yield:
|
464
590
|
Description: This cop checks for calling a block within a stub.
|
465
591
|
Enabled: true
|
592
|
+
VersionAdded: '1.32'
|
466
593
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Yield
|
467
594
|
|
468
595
|
Capybara/CurrentPathExpectation:
|
469
596
|
Description: Checks that no expectations are set on Capybara's `current_path`.
|
470
597
|
Enabled: true
|
598
|
+
VersionAdded: '1.18'
|
471
599
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/CurrentPathExpectation
|
472
600
|
|
473
601
|
Capybara/FeatureMethods:
|
474
602
|
Description: Checks for consistent method usage in feature specs.
|
475
603
|
Enabled: true
|
476
604
|
EnabledMethods: []
|
605
|
+
VersionAdded: '1.17'
|
606
|
+
VersionChanged: '1.25'
|
477
607
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/FeatureMethods
|
478
608
|
|
609
|
+
Capybara/VisibilityMatcher:
|
610
|
+
Description: Checks for boolean visibility in capybara finders.
|
611
|
+
Enabled: true
|
612
|
+
VersionAdded: '1.39'
|
613
|
+
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/VisibilityMatcher
|
614
|
+
|
479
615
|
FactoryBot/AttributeDefinedStatically:
|
480
616
|
Description: Always declare attribute values as blocks.
|
481
617
|
Enabled: true
|
618
|
+
VersionAdded: '1.28'
|
482
619
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/AttributeDefinedStatically
|
483
620
|
|
484
621
|
FactoryBot/CreateList:
|
@@ -488,11 +625,13 @@ FactoryBot/CreateList:
|
|
488
625
|
SupportedStyles:
|
489
626
|
- create_list
|
490
627
|
- n_times
|
628
|
+
VersionAdded: '1.25'
|
491
629
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/CreateList
|
492
630
|
|
493
631
|
FactoryBot/FactoryClassName:
|
494
632
|
Description: Use string value when setting the class attribute explicitly.
|
495
633
|
Enabled: true
|
634
|
+
VersionAdded: '1.37'
|
496
635
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/FactoryClassName
|
497
636
|
|
498
637
|
Rails/HttpStatus:
|
@@ -502,4 +641,5 @@ Rails/HttpStatus:
|
|
502
641
|
SupportedStyles:
|
503
642
|
- numeric
|
504
643
|
- symbolic
|
644
|
+
VersionAdded: '1.23'
|
505
645
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/HttpStatus
|