rubocop-rspec 1.43.2 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -4
  3. data/README.md +5 -1
  4. data/config/default.yml +183 -67
  5. data/lib/rubocop-rspec.rb +7 -8
  6. data/lib/rubocop/cop/rspec/align_left_let_brace.rb +7 -3
  7. data/lib/rubocop/cop/rspec/align_right_let_brace.rb +7 -3
  8. data/lib/rubocop/cop/rspec/around_block.rb +2 -2
  9. data/lib/rubocop/cop/rspec/base.rb +7 -54
  10. data/lib/rubocop/cop/rspec/be.rb +2 -2
  11. data/lib/rubocop/cop/rspec/before_after_all.rb +3 -3
  12. data/lib/rubocop/cop/rspec/capybara/current_path_expectation.rb +2 -2
  13. data/lib/rubocop/cop/rspec/capybara/feature_methods.rb +3 -2
  14. data/lib/rubocop/cop/rspec/describe_class.rb +34 -15
  15. data/lib/rubocop/cop/rspec/describe_method.rb +2 -2
  16. data/lib/rubocop/cop/rspec/described_class.rb +1 -2
  17. data/lib/rubocop/cop/rspec/described_class_module_wrapping.rb +1 -2
  18. data/lib/rubocop/cop/rspec/dialect.rb +1 -1
  19. data/lib/rubocop/cop/rspec/empty_example_group.rb +33 -38
  20. data/lib/rubocop/cop/rspec/empty_hook.rb +1 -1
  21. data/lib/rubocop/cop/rspec/empty_line_after_example.rb +1 -1
  22. data/lib/rubocop/cop/rspec/empty_line_after_example_group.rb +1 -1
  23. data/lib/rubocop/cop/rspec/empty_line_after_final_let.rb +1 -1
  24. data/lib/rubocop/cop/rspec/empty_line_after_hook.rb +1 -1
  25. data/lib/rubocop/cop/rspec/empty_line_after_subject.rb +2 -2
  26. data/lib/rubocop/cop/rspec/expect_actual.rb +2 -1
  27. data/lib/rubocop/cop/rspec/expect_in_hook.rb +1 -1
  28. data/lib/rubocop/cop/rspec/expect_output.rb +1 -1
  29. data/lib/rubocop/cop/rspec/file_path.rb +1 -1
  30. data/lib/rubocop/cop/rspec/focus.rb +13 -7
  31. data/lib/rubocop/cop/rspec/hook_argument.rb +2 -4
  32. data/lib/rubocop/cop/rspec/hooks_before_examples.rb +2 -2
  33. data/lib/rubocop/cop/rspec/implicit_block_expectation.rb +1 -2
  34. data/lib/rubocop/cop/rspec/implicit_expect.rb +1 -1
  35. data/lib/rubocop/cop/rspec/instance_spy.rb +1 -1
  36. data/lib/rubocop/cop/rspec/instance_variable.rb +1 -1
  37. data/lib/rubocop/cop/rspec/it_behaves_like.rb +1 -1
  38. data/lib/rubocop/cop/rspec/iterated_expectation.rb +1 -1
  39. data/lib/rubocop/cop/rspec/let_before_examples.rb +2 -2
  40. data/lib/rubocop/cop/rspec/let_setup.rb +7 -4
  41. data/lib/rubocop/cop/rspec/message_spies.rb +3 -3
  42. data/lib/rubocop/cop/rspec/mixin/empty_line_separation.rb +51 -0
  43. data/lib/rubocop/cop/rspec/mixin/final_end_location.rb +19 -0
  44. data/lib/rubocop/cop/rspec/mixin/top_level_group.rb +54 -0
  45. data/lib/rubocop/cop/rspec/mixin/variable.rb +20 -0
  46. data/lib/rubocop/cop/rspec/multiple_describes.rb +2 -3
  47. data/lib/rubocop/cop/rspec/multiple_expectations.rb +1 -1
  48. data/lib/rubocop/cop/rspec/multiple_memoized_helpers.rb +3 -1
  49. data/lib/rubocop/cop/rspec/named_subject.rb +8 -12
  50. data/lib/rubocop/cop/rspec/nested_groups.rb +1 -1
  51. data/lib/rubocop/cop/rspec/overwriting_setup.rb +2 -1
  52. data/lib/rubocop/cop/rspec/pending.rb +13 -5
  53. data/lib/rubocop/cop/rspec/predicate_matcher.rb +3 -3
  54. data/lib/rubocop/cop/rspec/repeated_include_example.rb +104 -0
  55. data/lib/rubocop/cop/rspec/scattered_setup.rb +1 -1
  56. data/lib/rubocop/cop/rspec/shared_context.rb +18 -11
  57. data/lib/rubocop/cop/rspec/shared_examples.rb +3 -1
  58. data/lib/rubocop/cop/rspec/single_argument_message_chain.rb +1 -1
  59. data/lib/rubocop/cop/rspec/stubbed_mock.rb +172 -0
  60. data/lib/rubocop/cop/rspec/subject_stub.rb +20 -10
  61. data/lib/rubocop/cop/rspec/variable_definition.rb +1 -1
  62. data/lib/rubocop/cop/rspec/variable_name.rb +1 -1
  63. data/lib/rubocop/cop/rspec_cops.rb +2 -1
  64. data/lib/rubocop/rspec/align_let_brace.rb +1 -1
  65. data/lib/rubocop/rspec/concept.rb +2 -2
  66. data/lib/rubocop/rspec/config_formatter.rb +5 -3
  67. data/lib/rubocop/rspec/corrector/move_node.rb +1 -1
  68. data/lib/rubocop/rspec/example_group.rb +15 -5
  69. data/lib/rubocop/rspec/hook.rb +2 -6
  70. data/lib/rubocop/rspec/inject.rb +4 -2
  71. data/lib/rubocop/rspec/language.rb +144 -105
  72. data/lib/rubocop/rspec/language/node_pattern.rb +7 -24
  73. data/lib/rubocop/rspec/node.rb +1 -1
  74. data/lib/rubocop/rspec/version.rb +1 -1
  75. metadata +25 -13
  76. data/lib/rubocop/cop/rspec/cop.rb +0 -10
  77. data/lib/rubocop/cop/rspec/invalid_predicate_matcher.rb +0 -41
  78. data/lib/rubocop/rspec.rb +0 -12
  79. data/lib/rubocop/rspec/empty_line_separation.rb +0 -48
  80. data/lib/rubocop/rspec/final_end_location.rb +0 -17
  81. data/lib/rubocop/rspec/top_level_describe.rb +0 -52
  82. data/lib/rubocop/rspec/top_level_group.rb +0 -57
  83. data/lib/rubocop/rspec/variable.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d294600ca379bc470a03a4f321754ddafd18ccc67f405dfe4b7be415d7486354
4
- data.tar.gz: 465ba74f6309c23bbe0473a11fff879240f84ae22edce0ce71735e0597d64b93
3
+ metadata.gz: ddf35b53864596c6fb017de51fcb89ba77720471a3eaa2dd02f250da1b434ffe
4
+ data.tar.gz: a1aefe9d16cccac1d0d3d3bb19704e46cc91041c9f9c83f26cabbf419d75e162
5
5
  SHA512:
6
- metadata.gz: 6bc9d6c638aaa87f89af987ffeed7d169becaa8d95a3798442285a5dfdb0fff0150bd092f5fbef047b14366c451f9682a3d1fd8f35c1e2a4f48902d586eff3be
7
- data.tar.gz: db4bf7903df2e82900c01d4318dcccdfd10be7ce251d2b472d1fb321f79523505f077d7683325060ad626b82dc52c3ee462ff437a1f7dff668492264f99d45db
6
+ metadata.gz: 677edcd80bb8883e1c786f7a3d8665eac1082341652b050b2188f8cd242b5c632181f569081e7c656765a2abb8ce453c074aa1d1b7dd7304b830928da157bcc9
7
+ data.tar.gz: 8b0a8211d5593d0bd20e984ff0daad1473c8b4ab75d7068aad3018dbc1b9036aa731d0c7aff7f12f9df8dbde91f554b4aabc002940000597ba2c8c4ee391ca5b
@@ -1,7 +1,38 @@
1
- # Change log
1
+ # Changelog
2
2
 
3
3
  ## Master (Unreleased)
4
4
 
5
+ ## 2.0.1 (2020-12-02)
6
+
7
+ * Fixed infinite loop in `RSpec/ExpectActual` autocorrection when both expected and actual values are literals. ([@Darhazer][])
8
+
9
+ ## 2.0.0 (2020-11-06)
10
+
11
+ * Remove deprecated class `::RuboCop::Cop::RSpec::Cop`. ([@bquorning][])
12
+ * Retire `RSpec/InvalidPredicateMatcher` cop. ([@pirj][])
13
+ * Remove the code responsible for filtering files to inspect. ([@pirj][])
14
+ * Make RSpec language elements configurable. ([@sl4vr][])
15
+ * Remove `CustomIncludeMethods` `RSpec/EmptyExampleGroup` option in favour of the new RSpec DSL configuration. ([@pirj][])
16
+ * Enabled pending cop (`RSpec/StubbedMock`). ([@pirj][])
17
+
18
+ ## 2.0.0.pre (2020-10-22)
19
+
20
+ * Update RuboCop dependency to v1.0.0. ([@bquorning][])
21
+ * Change namespace of several cops (`Capybara/*` -> `RSpec/Capybara/*`, `FactoryBot/*` -> `RSpec/FactoryBot/*`, `Rails/*` -> `RSpec/Rails/*`). ([@pirj][], [@bquorning][])
22
+
23
+ ## 1.44.1 (2020-10-20)
24
+
25
+ * Relax `rubocop-ast` version constraint. ([@PhilCoggins][])
26
+
27
+ ## 1.44.0 (2020-10-20)
28
+
29
+ * Move our documentation from rubocop-rspec.readthedocs.io to docs.rubocop.org/rubocop-rspec. ([@bquorning][])
30
+ * Add `RSpec/RepeatedIncludeExample` cop. ([@biinari][])
31
+ * Add `RSpec/StubbedMock` cop. ([@bquorning][], [@pirj][])
32
+ * Add `IgnoredMetadata` configuration option to `RSpec/DescribeClass`. ([@Rafix02][])
33
+ * Fix false positives in `RSpec/EmptyExampleGroup`. ([@pirj][])
34
+ * Fix a false positive for `RSpec/EmptyExampleGroup` when example is defined in an `if` branch. ([@koic][])
35
+
5
36
  ## 1.43.2 (2020-08-25)
6
37
 
7
38
  * Fix `RSpec/FilePath` when checking a file with a shared example. ([@pirj][])
@@ -506,8 +537,8 @@ Compatibility release so users can upgrade RuboCop to 0.51.0. No new features.
506
537
  [@rspeicher]: https://github.com/rspeicher
507
538
  [@jonatas]: https://github.com/jonatas
508
539
  [@pocke]: https://github.com/pocke
509
- [@bmorrall]: https:/github.com/bmorrall
510
- [@zverok]: https:/github.com/zverok
540
+ [@bmorrall]: https://github.com/bmorrall
541
+ [@zverok]: https://github.com/zverok
511
542
  [@timrogers]: https://github.com/timrogers
512
543
  [@yevhene]: https://github.com/yevhene
513
544
  [@walf443]: https://github.com/walf443
@@ -552,6 +583,10 @@ Compatibility release so users can upgrade RuboCop to 0.51.0. No new features.
552
583
  [@andrykonchin]: https://github.com/andrykonchin
553
584
  [@harrylewis]: https://github.com/harrylewis
554
585
  [@elliterate]: https://github.com/elliterate
555
- [@mlarraz]: https://github.com/mlarraz
556
586
  [@jtannas]: https://github.com/jtannas
557
587
  [@mockdeep]: https://github.com/mockdeep
588
+ [@biinari]: https://github.com/biinari
589
+ [@koic]: https://github.com/koic
590
+ [@Rafix02]: https://github.com/Rafix02
591
+ [@PhilCoggins]: https://github.com/PhilCoggins
592
+ [@sl4vr]: https://github.com/sl4vr
data/README.md CHANGED
@@ -23,6 +23,10 @@ or if you use bundler put this in your `Gemfile`
23
23
  gem 'rubocop-rspec', require: false
24
24
  ```
25
25
 
26
+ ### Upgrading to RuboCop RSpec v2.x
27
+
28
+ Read all the details in our [Upgrade to Version 2.x](https://docs.rubocop.org/rubocop-rspec/2.0/upgrade_to_version_2.html) document.
29
+
26
30
  ## Usage
27
31
 
28
32
  You need to tell RuboCop to load the RSpec extension. There are three
@@ -67,7 +71,7 @@ rubocop-rspec is available on Code Climate as part of the rubocop engine. [Learn
67
71
 
68
72
  ## Documentation
69
73
 
70
- You can read more about RuboCop-RSpec in its [official manual](https://docs.rubocop.org/rubocop-rspec).
74
+ You can read more about RuboCop RSpec in its [official manual](https://docs.rubocop.org/rubocop-rspec).
71
75
 
72
76
  ## The Cops
73
77
 
@@ -1,14 +1,85 @@
1
1
  ---
2
- AllCops:
3
- RSpec:
4
- Patterns:
5
- - _spec.rb
6
- - "(?:^|/)spec/"
7
- RSpec/FactoryBot:
8
- Patterns:
9
- - spec/factories.rb
10
- - spec/factories/**/*.rb
11
- - features/support/factories/**/*.rb
2
+ RSpec:
3
+ Include:
4
+ - "**/*_spec.rb"
5
+ - "**/spec/**/*"
6
+ Language:
7
+ ExampleGroups:
8
+ Regular:
9
+ - describe
10
+ - context
11
+ - feature
12
+ - example_group
13
+ Skipped:
14
+ - xdescribe
15
+ - xcontext
16
+ - xfeature
17
+ Focused:
18
+ - fdescribe
19
+ - fcontext
20
+ - ffeature
21
+ Examples:
22
+ Regular:
23
+ - it
24
+ - specify
25
+ - example
26
+ - scenario
27
+ - its
28
+ Focused:
29
+ - fit
30
+ - fspecify
31
+ - fexample
32
+ - fscenario
33
+ - focus
34
+ Skipped:
35
+ - xit
36
+ - xspecify
37
+ - xexample
38
+ - xscenario
39
+ - skip
40
+ Pending:
41
+ - pending
42
+ Expectations:
43
+ - expect
44
+ - is_expected
45
+ - expect_any_instance_of
46
+ Helpers:
47
+ - let
48
+ - let!
49
+ Hooks:
50
+ - prepend_before
51
+ - before
52
+ - append_before
53
+ - around
54
+ - prepend_after
55
+ - after
56
+ - append_after
57
+ HookScopes:
58
+ - each
59
+ - example
60
+ - context
61
+ - all
62
+ - suite
63
+ Includes:
64
+ Examples:
65
+ - it_behaves_like
66
+ - it_should_behave_like
67
+ - include_examples
68
+ Context:
69
+ - include_context
70
+ Runners:
71
+ - to
72
+ - to_not
73
+ - not_to
74
+ SharedGroups:
75
+ Examples:
76
+ - shared_examples
77
+ - shared_examples_for
78
+ Context:
79
+ - shared_context
80
+ Subjects:
81
+ - subject
82
+ - subject!
12
83
 
13
84
  RSpec/AlignLeftLetBrace:
14
85
  Description: Checks that left braces for adjacent single line lets are aligned.
@@ -50,9 +121,9 @@ RSpec/BeforeAfterAll:
50
121
  Description: Check that before/after(:all) isn't being used.
51
122
  Enabled: true
52
123
  Exclude:
53
- - spec/spec_helper.rb
54
- - spec/rails_helper.rb
55
- - spec/support/**/*.rb
124
+ - spec/spec_helper.rb
125
+ - spec/rails_helper.rb
126
+ - spec/support/**/*.rb
56
127
  VersionAdded: '1.12'
57
128
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeforeAfterAll
58
129
 
@@ -66,9 +137,9 @@ RSpec/ContextWording:
66
137
  Description: Checks that `context` docstring starts with an allowed prefix.
67
138
  Enabled: true
68
139
  Prefixes:
69
- - when
70
- - with
71
- - without
140
+ - when
141
+ - with
142
+ - without
72
143
  VersionAdded: '1.20'
73
144
  VersionChanged: 1.20.1
74
145
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContextWording
@@ -76,7 +147,23 @@ RSpec/ContextWording:
76
147
  RSpec/DescribeClass:
77
148
  Description: Check that the first argument to the top-level describe is a constant.
78
149
  Enabled: true
150
+ IgnoredMetadata:
151
+ type:
152
+ - channel
153
+ - controller
154
+ - helper
155
+ - job
156
+ - mailer
157
+ - model
158
+ - request
159
+ - routing
160
+ - view
161
+ - feature
162
+ - system
163
+ - mailbox
164
+ - aruba
79
165
  VersionAdded: '1.0'
166
+ VersionChanged: '1.44'
80
167
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribeClass
81
168
 
82
169
  RSpec/DescribeMethod:
@@ -97,8 +184,8 @@ RSpec/DescribedClass:
97
184
  SkipBlocks: false
98
185
  EnforcedStyle: described_class
99
186
  SupportedStyles:
100
- - described_class
101
- - explicit
187
+ - described_class
188
+ - explicit
102
189
  SafeAutoCorrect: false
103
190
  VersionAdded: '1.0'
104
191
  VersionChanged: '1.11'
@@ -120,8 +207,8 @@ RSpec/Dialect:
120
207
  RSpec/EmptyExampleGroup:
121
208
  Description: Checks if an example group does not include any tests.
122
209
  Enabled: true
123
- CustomIncludeMethods: []
124
210
  VersionAdded: '1.7'
211
+ VersionChanged: '2.0'
125
212
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyExampleGroup
126
213
 
127
214
  RSpec/EmptyHook:
@@ -173,9 +260,9 @@ RSpec/ExampleWithoutDescription:
173
260
  Enabled: true
174
261
  EnforcedStyle: always_allow
175
262
  SupportedStyles:
176
- - always_allow
177
- - single_line_only
178
- - disallow
263
+ - always_allow
264
+ - single_line_only
265
+ - disallow
179
266
  VersionAdded: '1.22'
180
267
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWithoutDescription
181
268
 
@@ -196,7 +283,7 @@ RSpec/ExpectActual:
196
283
  Description: Checks for `expect(...)` calls containing literal values.
197
284
  Enabled: true
198
285
  Exclude:
199
- - spec/routing/**/*
286
+ - spec/routing/**/*
200
287
  VersionAdded: '1.7'
201
288
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectActual
202
289
 
@@ -205,8 +292,8 @@ RSpec/ExpectChange:
205
292
  Enabled: true
206
293
  EnforcedStyle: method_call
207
294
  SupportedStyles:
208
- - method_call
209
- - block
295
+ - method_call
296
+ - block
210
297
  VersionAdded: '1.22'
211
298
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectChange
212
299
 
@@ -225,6 +312,9 @@ RSpec/ExpectOutput:
225
312
  RSpec/FilePath:
226
313
  Description: Checks that spec file paths are consistent and well-formed.
227
314
  Enabled: true
315
+ Include:
316
+ - "**/*_spec*rb*"
317
+ - "**/spec/**/*"
228
318
  CustomTransform:
229
319
  RuboCop: rubocop
230
320
  RSpec: rspec
@@ -245,9 +335,9 @@ RSpec/HookArgument:
245
335
  Enabled: true
246
336
  EnforcedStyle: implicit
247
337
  SupportedStyles:
248
- - implicit
249
- - each
250
- - example
338
+ - implicit
339
+ - each
340
+ - example
251
341
  VersionAdded: '1.7'
252
342
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HookArgument
253
343
 
@@ -268,8 +358,8 @@ RSpec/ImplicitExpect:
268
358
  Enabled: true
269
359
  EnforcedStyle: is_expected
270
360
  SupportedStyles:
271
- - is_expected
272
- - should
361
+ - is_expected
362
+ - should
273
363
  VersionAdded: '1.8'
274
364
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitExpect
275
365
 
@@ -278,9 +368,9 @@ RSpec/ImplicitSubject:
278
368
  Enabled: true
279
369
  EnforcedStyle: single_line_only
280
370
  SupportedStyles:
281
- - single_line_only
282
- - single_statement_only
283
- - disallow
371
+ - single_line_only
372
+ - single_statement_only
373
+ - disallow
284
374
  VersionAdded: '1.29'
285
375
  VersionChanged: '1.30'
286
376
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitSubject
@@ -299,19 +389,13 @@ RSpec/InstanceVariable:
299
389
  VersionChanged: '1.7'
300
390
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceVariable
301
391
 
302
- RSpec/InvalidPredicateMatcher:
303
- Description: Checks invalid usage for predicate matcher.
304
- Enabled: true
305
- VersionAdded: '1.16'
306
- StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InvalidPredicateMatcher
307
-
308
392
  RSpec/ItBehavesLike:
309
393
  Description: Checks that only one `it_behaves_like` style is used.
310
394
  Enabled: true
311
395
  EnforcedStyle: it_behaves_like
312
396
  SupportedStyles:
313
- - it_behaves_like
314
- - it_should_behave_like
397
+ - it_behaves_like
398
+ - it_should_behave_like
315
399
  VersionAdded: '1.13'
316
400
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ItBehavesLike
317
401
 
@@ -358,8 +442,8 @@ RSpec/MessageExpectation:
358
442
  Enabled: false
359
443
  EnforcedStyle: allow
360
444
  SupportedStyles:
361
- - allow
362
- - expect
445
+ - allow
446
+ - expect
363
447
  VersionAdded: '1.7'
364
448
  VersionChanged: '1.8'
365
449
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageExpectation
@@ -369,8 +453,8 @@ RSpec/MessageSpies:
369
453
  Enabled: true
370
454
  EnforcedStyle: have_received
371
455
  SupportedStyles:
372
- - have_received
373
- - receive
456
+ - have_received
457
+ - receive
374
458
  VersionAdded: '1.9'
375
459
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageSpies
376
460
 
@@ -428,8 +512,8 @@ RSpec/NotToNot:
428
512
  Enabled: true
429
513
  EnforcedStyle: not_to
430
514
  SupportedStyles:
431
- - not_to
432
- - to_not
515
+ - not_to
516
+ - to_not
433
517
  VersionAdded: '1.4'
434
518
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NotToNot
435
519
 
@@ -452,8 +536,8 @@ RSpec/PredicateMatcher:
452
536
  EnforcedStyle: inflected
453
537
  AllowedExplicitMatchers: []
454
538
  SupportedStyles:
455
- - inflected
456
- - explicit
539
+ - inflected
540
+ - explicit
457
541
  SafeAutoCorrect: false
458
542
  VersionAdded: '1.16'
459
543
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/PredicateMatcher
@@ -494,13 +578,19 @@ RSpec/RepeatedExampleGroupDescription:
494
578
  VersionAdded: '1.38'
495
579
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupDescription
496
580
 
581
+ RSpec/RepeatedIncludeExample:
582
+ Description: Check for repeated include of shared examples.
583
+ Enabled: true
584
+ VersionAdded: '1.44'
585
+ StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedIncludeExample
586
+
497
587
  RSpec/ReturnFromStub:
498
588
  Description: Checks for consistent style of stub's return setting.
499
589
  Enabled: true
500
590
  EnforcedStyle: and_return
501
591
  SupportedStyles:
502
- - and_return
503
- - block
592
+ - and_return
593
+ - block
504
594
  VersionAdded: '1.16'
505
595
  VersionChanged: '1.22'
506
596
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReturnFromStub
@@ -537,6 +627,12 @@ RSpec/SingleArgumentMessageChain:
537
627
  VersionChanged: '1.10'
538
628
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SingleArgumentMessageChain
539
629
 
630
+ RSpec/StubbedMock:
631
+ Description: Checks that message expectations do not have a configured response.
632
+ Enabled: true
633
+ VersionAdded: '1.44'
634
+ StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/StubbedMock
635
+
540
636
  RSpec/SubjectStub:
541
637
  Description: Checks for stubbed test subjects.
542
638
  Enabled: true
@@ -554,8 +650,8 @@ RSpec/VariableDefinition:
554
650
  Enabled: true
555
651
  EnforcedStyle: symbols
556
652
  SupportedStyles:
557
- - symbols
558
- - strings
653
+ - symbols
654
+ - strings
559
655
  VersionAdded: '1.40'
560
656
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VariableDefinition
561
657
 
@@ -564,8 +660,8 @@ RSpec/VariableName:
564
660
  Enabled: true
565
661
  EnforcedStyle: snake_case
566
662
  SupportedStyles:
567
- - snake_case
568
- - camelCase
663
+ - snake_case
664
+ - camelCase
569
665
  IgnoredPatterns: []
570
666
  VersionAdded: '1.40'
571
667
  VersionChanged: '1.43'
@@ -592,54 +688,74 @@ RSpec/Yield:
592
688
  VersionAdded: '1.32'
593
689
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Yield
594
690
 
595
- Capybara/CurrentPathExpectation:
691
+ RSpec/Capybara/CurrentPathExpectation:
596
692
  Description: Checks that no expectations are set on Capybara's `current_path`.
597
693
  Enabled: true
598
694
  VersionAdded: '1.18'
695
+ VersionChanged: '2.0'
599
696
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/CurrentPathExpectation
600
697
 
601
- Capybara/FeatureMethods:
698
+ RSpec/Capybara/FeatureMethods:
602
699
  Description: Checks for consistent method usage in feature specs.
603
700
  Enabled: true
604
701
  EnabledMethods: []
605
702
  VersionAdded: '1.17'
606
- VersionChanged: '1.25'
703
+ VersionChanged: '2.0'
607
704
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/FeatureMethods
608
705
 
609
- Capybara/VisibilityMatcher:
706
+ RSpec/Capybara/VisibilityMatcher:
610
707
  Description: Checks for boolean visibility in capybara finders.
611
708
  Enabled: true
612
709
  VersionAdded: '1.39'
710
+ VersionChanged: '2.0'
613
711
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/VisibilityMatcher
614
712
 
615
- FactoryBot/AttributeDefinedStatically:
713
+ RSpec/FactoryBot/AttributeDefinedStatically:
616
714
  Description: Always declare attribute values as blocks.
617
715
  Enabled: true
716
+ Include:
717
+ - spec/factories.rb
718
+ - spec/factories/**/*.rb
719
+ - features/support/factories/**/*.rb
618
720
  VersionAdded: '1.28'
721
+ VersionChanged: '2.0'
619
722
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/AttributeDefinedStatically
620
723
 
621
- FactoryBot/CreateList:
724
+ RSpec/FactoryBot/CreateList:
622
725
  Description: Checks for create_list usage.
623
726
  Enabled: true
727
+ Include:
728
+ - "**/*_spec.rb"
729
+ - "**/spec/**/*"
730
+ - spec/factories.rb
731
+ - spec/factories/**/*.rb
732
+ - features/support/factories/**/*.rb
624
733
  EnforcedStyle: create_list
625
734
  SupportedStyles:
626
- - create_list
627
- - n_times
735
+ - create_list
736
+ - n_times
628
737
  VersionAdded: '1.25'
738
+ VersionChanged: '2.0'
629
739
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/CreateList
630
740
 
631
- FactoryBot/FactoryClassName:
741
+ RSpec/FactoryBot/FactoryClassName:
632
742
  Description: Use string value when setting the class attribute explicitly.
633
743
  Enabled: true
744
+ Include:
745
+ - spec/factories.rb
746
+ - spec/factories/**/*.rb
747
+ - features/support/factories/**/*.rb
634
748
  VersionAdded: '1.37'
749
+ VersionChanged: '2.0'
635
750
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/FactoryClassName
636
751
 
637
- Rails/HttpStatus:
752
+ RSpec/Rails/HttpStatus:
638
753
  Description: Enforces use of symbolic or numeric value to describe HTTP status.
639
754
  Enabled: true
640
755
  EnforcedStyle: symbolic
641
756
  SupportedStyles:
642
- - numeric
643
- - symbolic
757
+ - numeric
758
+ - symbolic
644
759
  VersionAdded: '1.23'
760
+ VersionChanged: '2.0'
645
761
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/HttpStatus