rubocop-rspec 2.29.1 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +92 -3
- data/README.md +21 -5
- data/config/default.yml +64 -269
- data/config/obsoletion.yml +20 -21
- data/lib/rubocop/cop/rspec/around_block.rb +2 -4
- data/lib/rubocop/cop/rspec/base.rb +0 -1
- data/lib/rubocop/cop/rspec/be_eq.rb +1 -1
- data/lib/rubocop/cop/rspec/be_eql.rb +1 -1
- data/lib/rubocop/cop/rspec/be_nil.rb +4 -0
- data/lib/rubocop/cop/rspec/change_by_zero.rb +4 -5
- data/lib/rubocop/cop/rspec/contain_exactly.rb +1 -0
- data/lib/rubocop/cop/rspec/context_wording.rb +15 -9
- data/lib/rubocop/cop/rspec/dialect.rb +13 -0
- data/lib/rubocop/cop/rspec/empty_example_group.rb +2 -0
- data/lib/rubocop/cop/rspec/empty_metadata.rb +1 -0
- data/lib/rubocop/cop/rspec/example_wording.rb +3 -5
- data/lib/rubocop/cop/rspec/excessive_docstring_spacing.rb +1 -1
- data/lib/rubocop/cop/rspec/expect_actual.rb +3 -3
- data/lib/rubocop/cop/rspec/expect_in_hook.rb +1 -1
- data/lib/rubocop/cop/rspec/expect_in_let.rb +42 -0
- data/lib/rubocop/cop/rspec/focus.rb +14 -16
- data/lib/rubocop/cop/rspec/implicit_expect.rb +3 -3
- data/lib/rubocop/cop/rspec/implicit_subject.rb +8 -0
- data/lib/rubocop/cop/rspec/indexed_let.rb +6 -3
- data/lib/rubocop/cop/rspec/leaky_constant_declaration.rb +1 -1
- data/lib/rubocop/cop/rspec/match_array.rb +1 -0
- data/lib/rubocop/cop/rspec/message_spies.rb +4 -0
- data/lib/rubocop/cop/rspec/metadata_style.rb +1 -6
- data/lib/rubocop/cop/rspec/missing_expectation_target_method.rb +54 -0
- data/lib/rubocop/cop/rspec/mixin/metadata.rb +5 -8
- data/lib/rubocop/cop/rspec/mixin/top_level_group.rb +7 -0
- data/lib/rubocop/cop/rspec/multiple_describes.rb +1 -1
- data/lib/rubocop/cop/rspec/multiple_expectations.rb +4 -4
- data/lib/rubocop/cop/rspec/multiple_memoized_helpers.rb +4 -5
- data/lib/rubocop/cop/rspec/named_subject.rb +5 -2
- data/lib/rubocop/cop/rspec/nested_groups.rb +2 -1
- data/lib/rubocop/cop/rspec/pending_without_reason.rb +0 -5
- data/lib/rubocop/cop/rspec/predicate_matcher.rb +25 -11
- data/lib/rubocop/cop/rspec/remove_const.rb +0 -1
- data/lib/rubocop/cop/rspec/repeated_subject_call.rb +1 -0
- data/lib/rubocop/cop/rspec/return_from_stub.rb +5 -4
- data/lib/rubocop/cop/rspec/scattered_setup.rb +7 -1
- data/lib/rubocop/cop/rspec/single_argument_message_chain.rb +3 -4
- data/lib/rubocop/cop/rspec/sort_metadata.rb +22 -8
- data/lib/rubocop/cop/rspec/stubbed_mock.rb +15 -10
- data/lib/rubocop/cop/rspec/subject_stub.rb +2 -2
- data/lib/rubocop/cop/rspec/unspecified_exception.rb +21 -14
- data/lib/rubocop/cop/rspec/verified_double_reference.rb +14 -53
- data/lib/rubocop/cop/rspec/void_expect.rb +6 -1
- data/lib/rubocop/cop/rspec_cops.rb +2 -25
- data/lib/rubocop/rspec/concept.rb +0 -1
- data/lib/rubocop/rspec/config_formatter.rb +4 -32
- data/lib/rubocop/rspec/cop/generator.rb +25 -0
- data/lib/rubocop/rspec/description_extractor.rb +2 -2
- data/lib/rubocop/rspec/hook.rb +1 -1
- data/lib/rubocop/rspec/language.rb +0 -1
- data/lib/rubocop/rspec/node.rb +1 -1
- data/lib/rubocop/rspec/plugin.rb +37 -0
- data/lib/rubocop/rspec/shared_contexts/default_rspec_language_config_context.rb +1 -1
- data/lib/rubocop/rspec/version.rb +1 -1
- data/lib/rubocop/rspec/wording.rb +2 -4
- data/lib/rubocop/rspec.rb +0 -7
- data/lib/rubocop-rspec.rb +2 -20
- metadata +18 -62
- data/lib/rubocop/cop/rspec/capybara/current_path_expectation.rb +0 -39
- data/lib/rubocop/cop/rspec/capybara/feature_methods.rb +0 -104
- data/lib/rubocop/cop/rspec/capybara/match_style.rb +0 -38
- data/lib/rubocop/cop/rspec/capybara/negation_matcher.rb +0 -33
- data/lib/rubocop/cop/rspec/capybara/specific_actions.rb +0 -29
- data/lib/rubocop/cop/rspec/capybara/specific_finders.rb +0 -24
- data/lib/rubocop/cop/rspec/capybara/specific_matcher.rb +0 -35
- data/lib/rubocop/cop/rspec/capybara/visibility_matcher.rb +0 -36
- data/lib/rubocop/cop/rspec/factory_bot/attribute_defined_statically.rb +0 -35
- data/lib/rubocop/cop/rspec/factory_bot/consistent_parentheses_style.rb +0 -50
- data/lib/rubocop/cop/rspec/factory_bot/create_list.rb +0 -40
- data/lib/rubocop/cop/rspec/factory_bot/factory_class_name.rb +0 -29
- data/lib/rubocop/cop/rspec/factory_bot/factory_name_style.rb +0 -33
- data/lib/rubocop/cop/rspec/factory_bot/syntax_methods.rb +0 -55
- data/lib/rubocop/cop/rspec/file_path.rb +0 -179
- data/lib/rubocop/cop/rspec/rails/avoid_setup_hook.rb +0 -27
- data/lib/rubocop/cop/rspec/rails/have_http_status.rb +0 -35
- data/lib/rubocop/cop/rspec/rails/http_status.rb +0 -61
- data/lib/rubocop/cop/rspec/rails/inferred_spec_type.rb +0 -62
- data/lib/rubocop/cop/rspec/rails/minitest_assertions.rb +0 -39
- data/lib/rubocop/cop/rspec/rails/negation_be_valid.rb +0 -39
- data/lib/rubocop/cop/rspec/rails/travel_around.rb +0 -34
- data/lib/rubocop/rspec/inject.rb +0 -18
- data/lib/rubocop/rspec/language/node_pattern.rb +0 -48
data/config/default.yml
CHANGED
@@ -3,10 +3,10 @@ RSpec:
|
|
3
3
|
Enabled: true
|
4
4
|
StyleGuideBaseURL: https://rspec.rubystyle.guide
|
5
5
|
DocumentationBaseURL: https://docs.rubocop.org/rubocop-rspec
|
6
|
-
Include:
|
6
|
+
Include:
|
7
7
|
- "**/*_spec.rb"
|
8
8
|
- "**/spec/**/*"
|
9
|
-
Language:
|
9
|
+
Language:
|
10
10
|
inherit_mode:
|
11
11
|
merge:
|
12
12
|
- Expectations
|
@@ -146,13 +146,15 @@ RSpec/Be:
|
|
146
146
|
|
147
147
|
RSpec/BeEmpty:
|
148
148
|
Description: Prefer using `be_empty` when checking for an empty array.
|
149
|
-
Enabled:
|
149
|
+
Enabled: true
|
150
|
+
AutoCorrect: contextual
|
150
151
|
VersionAdded: '2.20'
|
152
|
+
VersionChanged: '2.31'
|
151
153
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeEmpty
|
152
154
|
|
153
155
|
RSpec/BeEq:
|
154
156
|
Description: Check for expectations where `be(...)` can replace `eq(...)`.
|
155
|
-
Enabled:
|
157
|
+
Enabled: true
|
156
158
|
Safe: false
|
157
159
|
VersionAdded: 2.9.0
|
158
160
|
VersionChanged: '2.16'
|
@@ -168,7 +170,7 @@ RSpec/BeEql:
|
|
168
170
|
|
169
171
|
RSpec/BeNil:
|
170
172
|
Description: Ensures a consistent style is used when matching `nil`.
|
171
|
-
Enabled:
|
173
|
+
Enabled: true
|
172
174
|
EnforcedStyle: be_nil
|
173
175
|
SupportedStyles:
|
174
176
|
- be
|
@@ -191,7 +193,7 @@ RSpec/BeforeAfterAll:
|
|
191
193
|
|
192
194
|
RSpec/ChangeByZero:
|
193
195
|
Description: Prefer negated matchers over `to change.by(0)`.
|
194
|
-
Enabled:
|
196
|
+
Enabled: true
|
195
197
|
VersionAdded: '2.11'
|
196
198
|
VersionChanged: '2.14'
|
197
199
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ChangeByZero
|
@@ -200,7 +202,7 @@ RSpec/ChangeByZero:
|
|
200
202
|
RSpec/ClassCheck:
|
201
203
|
Description: Enforces consistent use of `be_a` or `be_kind_of`.
|
202
204
|
StyleGuide: "#is-a-vs-kind-of"
|
203
|
-
Enabled:
|
205
|
+
Enabled: true
|
204
206
|
VersionAdded: '2.13'
|
205
207
|
EnforcedStyle: be_a
|
206
208
|
SupportedStyles:
|
@@ -210,7 +212,7 @@ RSpec/ClassCheck:
|
|
210
212
|
|
211
213
|
RSpec/ContainExactly:
|
212
214
|
Description: Checks where `contain_exactly` is used.
|
213
|
-
Enabled:
|
215
|
+
Enabled: true
|
214
216
|
VersionAdded: '2.19'
|
215
217
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ContainExactly
|
216
218
|
|
@@ -304,22 +306,25 @@ RSpec/Dialect:
|
|
304
306
|
|
305
307
|
RSpec/DuplicatedMetadata:
|
306
308
|
Description: Avoid duplicated metadata.
|
307
|
-
Enabled:
|
309
|
+
Enabled: true
|
308
310
|
VersionAdded: '2.16'
|
309
311
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DuplicatedMetadata
|
310
312
|
|
311
313
|
RSpec/EmptyExampleGroup:
|
312
314
|
Description: Checks if an example group does not include any tests.
|
313
315
|
Enabled: true
|
316
|
+
AutoCorrect: contextual
|
314
317
|
SafeAutoCorrect: false
|
315
318
|
VersionAdded: '1.7'
|
316
|
-
VersionChanged: '2.
|
319
|
+
VersionChanged: '2.31'
|
317
320
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyExampleGroup
|
318
321
|
|
319
322
|
RSpec/EmptyHook:
|
320
323
|
Description: Checks for empty before and after hooks.
|
321
324
|
Enabled: true
|
325
|
+
AutoCorrect: contextual
|
322
326
|
VersionAdded: '1.39'
|
327
|
+
VersionChanged: '2.31'
|
323
328
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyHook
|
324
329
|
|
325
330
|
RSpec/EmptyLineAfterExample:
|
@@ -362,19 +367,21 @@ RSpec/EmptyLineAfterSubject:
|
|
362
367
|
|
363
368
|
RSpec/EmptyMetadata:
|
364
369
|
Description: Avoid empty metadata hash.
|
365
|
-
Enabled:
|
370
|
+
Enabled: true
|
371
|
+
AutoCorrect: contextual
|
366
372
|
VersionAdded: '2.24'
|
373
|
+
VersionChanged: '2.31'
|
367
374
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyMetadata
|
368
375
|
|
369
376
|
RSpec/EmptyOutput:
|
370
377
|
Description: Check that the `output` matcher is not called with an empty string.
|
371
|
-
Enabled:
|
378
|
+
Enabled: true
|
372
379
|
VersionAdded: '2.29'
|
373
380
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyOutput
|
374
381
|
|
375
382
|
RSpec/Eq:
|
376
383
|
Description: Use `eq` instead of `be ==` to compare objects.
|
377
|
-
Enabled:
|
384
|
+
Enabled: true
|
378
385
|
VersionAdded: '2.24'
|
379
386
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Eq
|
380
387
|
|
@@ -396,6 +403,7 @@ RSpec/ExampleWithoutDescription:
|
|
396
403
|
- single_line_only
|
397
404
|
- disallow
|
398
405
|
VersionAdded: '1.22'
|
406
|
+
StyleGuide: https://rspec.rubystyle.guide/#it-and-specify
|
399
407
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWithoutDescription
|
400
408
|
|
401
409
|
RSpec/ExampleWording:
|
@@ -416,7 +424,7 @@ RSpec/ExampleWording:
|
|
416
424
|
|
417
425
|
RSpec/ExcessiveDocstringSpacing:
|
418
426
|
Description: Checks for excessive whitespace in example descriptions.
|
419
|
-
Enabled:
|
427
|
+
Enabled: true
|
420
428
|
VersionAdded: '2.5'
|
421
429
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExcessiveDocstringSpacing
|
422
430
|
|
@@ -447,32 +455,24 @@ RSpec/ExpectInHook:
|
|
447
455
|
VersionAdded: '1.16'
|
448
456
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInHook
|
449
457
|
|
458
|
+
RSpec/ExpectInLet:
|
459
|
+
Description: Do not use `expect` in let.
|
460
|
+
Enabled: true
|
461
|
+
VersionAdded: '2.30'
|
462
|
+
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInLet
|
463
|
+
|
450
464
|
RSpec/ExpectOutput:
|
451
465
|
Description: Checks for opportunities to use `expect { ... }.to output`.
|
452
466
|
Enabled: true
|
453
467
|
VersionAdded: '1.10'
|
454
468
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectOutput
|
455
469
|
|
456
|
-
RSpec/FilePath:
|
457
|
-
Description: Checks that spec file paths are consistent and well-formed.
|
458
|
-
Enabled: true
|
459
|
-
Include:
|
460
|
-
- "**/*_spec*rb*"
|
461
|
-
- "**/spec/**/*"
|
462
|
-
CustomTransform:
|
463
|
-
RuboCop: rubocop
|
464
|
-
RSpec: rspec
|
465
|
-
IgnoreMethods: false
|
466
|
-
SpecSuffixOnly: false
|
467
|
-
VersionAdded: '1.2'
|
468
|
-
VersionChanged: '2.24'
|
469
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FilePath
|
470
|
-
|
471
470
|
RSpec/Focus:
|
472
471
|
Description: Checks if examples are focused.
|
473
472
|
Enabled: true
|
473
|
+
AutoCorrect: contextual
|
474
474
|
VersionAdded: '1.5'
|
475
|
-
VersionChanged: '2.
|
475
|
+
VersionChanged: '2.31'
|
476
476
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Focus
|
477
477
|
|
478
478
|
RSpec/HookArgument:
|
@@ -490,12 +490,14 @@ RSpec/HookArgument:
|
|
490
490
|
RSpec/HooksBeforeExamples:
|
491
491
|
Description: Checks for before/around/after hooks that come after an example.
|
492
492
|
Enabled: true
|
493
|
+
AutoCorrect: contextual
|
493
494
|
VersionAdded: '1.29'
|
495
|
+
VersionChanged: '2.31'
|
494
496
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HooksBeforeExamples
|
495
497
|
|
496
498
|
RSpec/IdenticalEqualityAssertion:
|
497
499
|
Description: Checks for equality assertions with identical expressions on both sides.
|
498
|
-
Enabled:
|
500
|
+
Enabled: true
|
499
501
|
VersionAdded: '2.4'
|
500
502
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IdenticalEqualityAssertion
|
501
503
|
|
@@ -532,7 +534,7 @@ RSpec/ImplicitSubject:
|
|
532
534
|
|
533
535
|
RSpec/IndexedLet:
|
534
536
|
Description: Do not set up test data using indexes (e.g., `item_1`, `item_2`).
|
535
|
-
Enabled:
|
537
|
+
Enabled: true
|
536
538
|
VersionAdded: '2.20'
|
537
539
|
VersionChanged: '2.23'
|
538
540
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IndexedLet
|
@@ -557,7 +559,7 @@ RSpec/InstanceVariable:
|
|
557
559
|
|
558
560
|
RSpec/IsExpectedSpecify:
|
559
561
|
Description: Check for `specify` with `is_expected` and one-liner expectations.
|
560
|
-
Enabled:
|
562
|
+
Enabled: true
|
561
563
|
VersionAdded: '2.27'
|
562
564
|
StyleGuide: https://rspec.rubystyle.guide/#it-and-specify
|
563
565
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IsExpectedSpecify
|
@@ -596,8 +598,9 @@ RSpec/LeakyConstantDeclaration:
|
|
596
598
|
RSpec/LetBeforeExamples:
|
597
599
|
Description: Checks for `let` definitions that come after an example.
|
598
600
|
Enabled: true
|
601
|
+
AutoCorrect: contextual
|
599
602
|
VersionAdded: '1.16'
|
600
|
-
VersionChanged: '
|
603
|
+
VersionChanged: '2.31'
|
601
604
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetBeforeExamples
|
602
605
|
|
603
606
|
RSpec/LetSetup:
|
@@ -608,7 +611,7 @@ RSpec/LetSetup:
|
|
608
611
|
|
609
612
|
RSpec/MatchArray:
|
610
613
|
Description: Checks where `match_array` is used.
|
611
|
-
Enabled:
|
614
|
+
Enabled: true
|
612
615
|
VersionAdded: '2.19'
|
613
616
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MatchArray
|
614
617
|
|
@@ -641,7 +644,7 @@ RSpec/MessageSpies:
|
|
641
644
|
|
642
645
|
RSpec/MetadataStyle:
|
643
646
|
Description: Use consistent metadata style.
|
644
|
-
Enabled:
|
647
|
+
Enabled: true
|
645
648
|
EnforcedStyle: symbol
|
646
649
|
SupportedStyles:
|
647
650
|
- hash
|
@@ -655,6 +658,12 @@ RSpec/MissingExampleGroupArgument:
|
|
655
658
|
VersionAdded: '1.28'
|
656
659
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MissingExampleGroupArgument
|
657
660
|
|
661
|
+
RSpec/MissingExpectationTargetMethod:
|
662
|
+
Description: Checks if `.to`, `not_to` or `to_not` are used.
|
663
|
+
Enabled: true
|
664
|
+
VersionAdded: '3.0'
|
665
|
+
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MissingExpectationTargetMethod
|
666
|
+
|
658
667
|
RSpec/MultipleDescribes:
|
659
668
|
Description: Checks for multiple top-level example groups.
|
660
669
|
Enabled: true
|
@@ -709,7 +718,7 @@ RSpec/NestedGroups:
|
|
709
718
|
|
710
719
|
RSpec/NoExpectationExample:
|
711
720
|
Description: Checks if an example contains any expectation.
|
712
|
-
Enabled:
|
721
|
+
Enabled: true
|
713
722
|
Safe: false
|
714
723
|
VersionAdded: '2.13'
|
715
724
|
VersionChanged: '2.14'
|
@@ -742,7 +751,7 @@ RSpec/Pending:
|
|
742
751
|
|
743
752
|
RSpec/PendingWithoutReason:
|
744
753
|
Description: Checks for pending or skipped examples without reason.
|
745
|
-
Enabled:
|
754
|
+
Enabled: true
|
746
755
|
VersionAdded: '2.16'
|
747
756
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/PendingWithoutReason
|
748
757
|
|
@@ -768,7 +777,7 @@ RSpec/ReceiveCounts:
|
|
768
777
|
|
769
778
|
RSpec/ReceiveMessages:
|
770
779
|
Description: Checks for multiple messages stubbed on the same object.
|
771
|
-
Enabled:
|
780
|
+
Enabled: true
|
772
781
|
SafeAutoCorrect: false
|
773
782
|
VersionAdded: '2.23'
|
774
783
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveMessages
|
@@ -781,19 +790,19 @@ RSpec/ReceiveNever:
|
|
781
790
|
|
782
791
|
RSpec/RedundantAround:
|
783
792
|
Description: Remove redundant `around` hook.
|
784
|
-
Enabled:
|
793
|
+
Enabled: true
|
785
794
|
VersionAdded: '2.19'
|
786
795
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RedundantAround
|
787
796
|
|
788
797
|
RSpec/RedundantPredicateMatcher:
|
789
798
|
Description: Checks for redundant predicate matcher.
|
790
|
-
Enabled:
|
799
|
+
Enabled: true
|
791
800
|
VersionAdded: '2.26'
|
792
801
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RedundantPredicateMatcher
|
793
802
|
|
794
803
|
RSpec/RemoveConst:
|
795
804
|
Description: Checks that `remove_const` is not used in specs.
|
796
|
-
Enabled:
|
805
|
+
Enabled: true
|
797
806
|
VersionAdded: '2.26'
|
798
807
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RemoveConst
|
799
808
|
|
@@ -829,7 +838,7 @@ RSpec/RepeatedIncludeExample:
|
|
829
838
|
|
830
839
|
RSpec/RepeatedSubjectCall:
|
831
840
|
Description: Checks for repeated calls to subject missing that it is memoized.
|
832
|
-
Enabled:
|
841
|
+
Enabled: true
|
833
842
|
VersionAdded: '2.27'
|
834
843
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedSubjectCall
|
835
844
|
|
@@ -847,14 +856,17 @@ RSpec/ReturnFromStub:
|
|
847
856
|
RSpec/ScatteredLet:
|
848
857
|
Description: Checks for let scattered across the example group.
|
849
858
|
Enabled: true
|
859
|
+
AutoCorrect: contextual
|
850
860
|
VersionAdded: '1.14'
|
851
|
-
VersionChanged: '
|
861
|
+
VersionChanged: '2.31'
|
852
862
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredLet
|
853
863
|
|
854
864
|
RSpec/ScatteredSetup:
|
855
865
|
Description: Checks for setup scattered across multiple hooks in an example group.
|
856
866
|
Enabled: true
|
867
|
+
AutoCorrect: contextual
|
857
868
|
VersionAdded: '1.10'
|
869
|
+
VersionChanged: '2.31'
|
858
870
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredSetup
|
859
871
|
|
860
872
|
RSpec/SharedContext:
|
@@ -883,19 +895,19 @@ RSpec/SingleArgumentMessageChain:
|
|
883
895
|
|
884
896
|
RSpec/SkipBlockInsideExample:
|
885
897
|
Description: Checks for passing a block to `skip` within examples.
|
886
|
-
Enabled:
|
898
|
+
Enabled: true
|
887
899
|
VersionAdded: '2.19'
|
888
900
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SkipBlockInsideExample
|
889
901
|
|
890
902
|
RSpec/SortMetadata:
|
891
903
|
Description: Sort RSpec metadata alphabetically.
|
892
|
-
Enabled:
|
904
|
+
Enabled: true
|
893
905
|
VersionAdded: '2.14'
|
894
906
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SortMetadata
|
895
907
|
|
896
908
|
RSpec/SpecFilePathFormat:
|
897
909
|
Description: Checks that spec file paths are consistent and well-formed.
|
898
|
-
Enabled:
|
910
|
+
Enabled: true
|
899
911
|
Include:
|
900
912
|
- "**/*_spec.rb"
|
901
913
|
Exclude:
|
@@ -911,7 +923,7 @@ RSpec/SpecFilePathFormat:
|
|
911
923
|
|
912
924
|
RSpec/SpecFilePathSuffix:
|
913
925
|
Description: Checks that spec file paths suffix are consistent and well-formed.
|
914
|
-
Enabled:
|
926
|
+
Enabled: true
|
915
927
|
VersionAdded: '2.24'
|
916
928
|
Include:
|
917
929
|
- "**/*_spec*rb*"
|
@@ -926,7 +938,7 @@ RSpec/StubbedMock:
|
|
926
938
|
|
927
939
|
RSpec/SubjectDeclaration:
|
928
940
|
Description: Ensure that subject is defined using subject helper.
|
929
|
-
Enabled:
|
941
|
+
Enabled: true
|
930
942
|
VersionAdded: '2.5'
|
931
943
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SubjectDeclaration
|
932
944
|
|
@@ -940,7 +952,7 @@ RSpec/SubjectStub:
|
|
940
952
|
|
941
953
|
RSpec/UndescriptiveLiteralsDescription:
|
942
954
|
Description: Description should be descriptive.
|
943
|
-
Enabled:
|
955
|
+
Enabled: true
|
944
956
|
VersionAdded: '2.29'
|
945
957
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/UndescriptiveLiteralsDescription
|
946
958
|
|
@@ -974,14 +986,10 @@ RSpec/VariableName:
|
|
974
986
|
|
975
987
|
RSpec/VerifiedDoubleReference:
|
976
988
|
Description: Checks for consistent verified double reference style.
|
977
|
-
Enabled:
|
989
|
+
Enabled: true
|
978
990
|
SafeAutoCorrect: false
|
979
|
-
EnforcedStyle: constant
|
980
|
-
SupportedStyles:
|
981
|
-
- constant
|
982
|
-
- string
|
983
991
|
VersionAdded: 2.10.0
|
984
|
-
VersionChanged: '
|
992
|
+
VersionChanged: '3.4'
|
985
993
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VerifiedDoubleReference
|
986
994
|
|
987
995
|
RSpec/VerifiedDoubles:
|
@@ -1005,216 +1013,3 @@ RSpec/Yield:
|
|
1005
1013
|
Enabled: true
|
1006
1014
|
VersionAdded: '1.32'
|
1007
1015
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Yield
|
1008
|
-
|
1009
|
-
RSpec/Capybara:
|
1010
|
-
Enabled: true
|
1011
|
-
Include: *1
|
1012
|
-
Language: *2
|
1013
|
-
|
1014
|
-
RSpec/Capybara/CurrentPathExpectation:
|
1015
|
-
Description: Checks that no expectations are set on Capybara's `current_path`.
|
1016
|
-
Enabled: true
|
1017
|
-
VersionAdded: '1.18'
|
1018
|
-
VersionChanged: '2.0'
|
1019
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/CurrentPathExpectation
|
1020
|
-
|
1021
|
-
RSpec/Capybara/FeatureMethods:
|
1022
|
-
Description: Checks for consistent method usage in feature specs.
|
1023
|
-
Enabled: true
|
1024
|
-
EnabledMethods: []
|
1025
|
-
VersionAdded: '1.17'
|
1026
|
-
VersionChanged: '2.0'
|
1027
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/FeatureMethods
|
1028
|
-
|
1029
|
-
RSpec/Capybara/MatchStyle:
|
1030
|
-
Description: Checks for usage of deprecated style methods.
|
1031
|
-
Enabled: pending
|
1032
|
-
VersionAdded: '2.17'
|
1033
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/MatchStyle
|
1034
|
-
|
1035
|
-
RSpec/Capybara/NegationMatcher:
|
1036
|
-
Description: Enforces use of `have_no_*` or `not_to` for negated expectations.
|
1037
|
-
Enabled: pending
|
1038
|
-
VersionAdded: '2.14'
|
1039
|
-
EnforcedStyle: not_to
|
1040
|
-
SupportedStyles:
|
1041
|
-
- have_no
|
1042
|
-
- not_to
|
1043
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/NegationMatcher
|
1044
|
-
|
1045
|
-
RSpec/Capybara/SpecificActions:
|
1046
|
-
Description: Checks for there is a more specific actions offered by Capybara.
|
1047
|
-
Enabled: pending
|
1048
|
-
VersionAdded: '2.14'
|
1049
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/SpecificActions
|
1050
|
-
|
1051
|
-
RSpec/Capybara/SpecificFinders:
|
1052
|
-
Description: Checks if there is a more specific finder offered by Capybara.
|
1053
|
-
Enabled: pending
|
1054
|
-
VersionAdded: '2.13'
|
1055
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/SpecificFinders
|
1056
|
-
|
1057
|
-
RSpec/Capybara/SpecificMatcher:
|
1058
|
-
Description: Checks for there is a more specific matcher offered by Capybara.
|
1059
|
-
Enabled: pending
|
1060
|
-
VersionAdded: '2.12'
|
1061
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/SpecificMatcher
|
1062
|
-
|
1063
|
-
RSpec/Capybara/VisibilityMatcher:
|
1064
|
-
Description: Checks for boolean visibility in Capybara finders.
|
1065
|
-
Enabled: true
|
1066
|
-
VersionAdded: '1.39'
|
1067
|
-
VersionChanged: '2.0'
|
1068
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/VisibilityMatcher
|
1069
|
-
|
1070
|
-
RSpec/FactoryBot:
|
1071
|
-
Enabled: true
|
1072
|
-
Include: *1
|
1073
|
-
Language: *2
|
1074
|
-
|
1075
|
-
RSpec/FactoryBot/AttributeDefinedStatically:
|
1076
|
-
Description: Always declare attribute values as blocks.
|
1077
|
-
Enabled: true
|
1078
|
-
Include:
|
1079
|
-
- "**/spec/factories.rb"
|
1080
|
-
- "**/spec/factories/**/*.rb"
|
1081
|
-
- "**/features/support/factories/**/*.rb"
|
1082
|
-
VersionAdded: '1.28'
|
1083
|
-
VersionChanged: '2.23'
|
1084
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/AttributeDefinedStatically
|
1085
|
-
|
1086
|
-
RSpec/FactoryBot/ConsistentParenthesesStyle:
|
1087
|
-
Description: Use a consistent style for parentheses in factory bot calls.
|
1088
|
-
Enabled: pending
|
1089
|
-
EnforcedStyle: require_parentheses
|
1090
|
-
SupportedStyles:
|
1091
|
-
- require_parentheses
|
1092
|
-
- omit_parentheses
|
1093
|
-
VersionAdded: '2.14'
|
1094
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/ConsistentParenthesesStyle
|
1095
|
-
|
1096
|
-
RSpec/FactoryBot/CreateList:
|
1097
|
-
Description: Checks for create_list usage.
|
1098
|
-
Enabled: true
|
1099
|
-
Include:
|
1100
|
-
- "**/*_spec.rb"
|
1101
|
-
- "**/spec/**/*"
|
1102
|
-
- "**/spec/factories.rb"
|
1103
|
-
- "**/spec/factories/**/*.rb"
|
1104
|
-
- "**/features/support/factories/**/*.rb"
|
1105
|
-
EnforcedStyle: create_list
|
1106
|
-
SupportedStyles:
|
1107
|
-
- create_list
|
1108
|
-
- n_times
|
1109
|
-
VersionAdded: '1.25'
|
1110
|
-
VersionChanged: '2.23'
|
1111
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/CreateList
|
1112
|
-
|
1113
|
-
RSpec/FactoryBot/FactoryClassName:
|
1114
|
-
Description: Use string value when setting the class attribute explicitly.
|
1115
|
-
Enabled: true
|
1116
|
-
Include:
|
1117
|
-
- "**/spec/factories.rb"
|
1118
|
-
- "**/spec/factories/**/*.rb"
|
1119
|
-
- "**/features/support/factories/**/*.rb"
|
1120
|
-
VersionAdded: '1.37'
|
1121
|
-
VersionChanged: '2.23'
|
1122
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/FactoryClassName
|
1123
|
-
|
1124
|
-
RSpec/FactoryBot/FactoryNameStyle:
|
1125
|
-
Description: Checks for name style for argument of FactoryBot::Syntax::Methods.
|
1126
|
-
Enabled: pending
|
1127
|
-
VersionAdded: '2.16'
|
1128
|
-
EnforcedStyle: symbol
|
1129
|
-
SupportedStyles:
|
1130
|
-
- symbol
|
1131
|
-
- string
|
1132
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/FactoryNameStyle
|
1133
|
-
|
1134
|
-
RSpec/FactoryBot/SyntaxMethods:
|
1135
|
-
Description: Use shorthands from `FactoryBot::Syntax::Methods` in your specs.
|
1136
|
-
Enabled: pending
|
1137
|
-
SafeAutoCorrect: false
|
1138
|
-
VersionAdded: '2.7'
|
1139
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/SyntaxMethods
|
1140
|
-
|
1141
|
-
RSpec/Rails:
|
1142
|
-
Enabled: true
|
1143
|
-
Include: *1
|
1144
|
-
Language: *2
|
1145
|
-
|
1146
|
-
RSpec/Rails/AvoidSetupHook:
|
1147
|
-
Description: Checks that tests use RSpec `before` hook over Rails `setup` method.
|
1148
|
-
Enabled: pending
|
1149
|
-
VersionAdded: '2.4'
|
1150
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/AvoidSetupHook
|
1151
|
-
|
1152
|
-
RSpec/Rails/HaveHttpStatus:
|
1153
|
-
Description: Checks that tests use `have_http_status` instead of equality matchers.
|
1154
|
-
Enabled: pending
|
1155
|
-
ResponseMethods:
|
1156
|
-
- response
|
1157
|
-
- last_response
|
1158
|
-
SafeAutoCorrect: false
|
1159
|
-
VersionAdded: '2.12'
|
1160
|
-
VersionChanged: '2.27'
|
1161
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/HaveHttpStatus
|
1162
|
-
|
1163
|
-
RSpec/Rails/HttpStatus:
|
1164
|
-
Description: Enforces use of symbolic or numeric value to describe HTTP status.
|
1165
|
-
Enabled: true
|
1166
|
-
EnforcedStyle: symbolic
|
1167
|
-
SupportedStyles:
|
1168
|
-
- numeric
|
1169
|
-
- symbolic
|
1170
|
-
- be_status
|
1171
|
-
VersionAdded: '1.23'
|
1172
|
-
VersionChanged: '2.20'
|
1173
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/HttpStatus
|
1174
|
-
|
1175
|
-
RSpec/Rails/InferredSpecType:
|
1176
|
-
Description: Identifies redundant spec type.
|
1177
|
-
Enabled: pending
|
1178
|
-
Safe: false
|
1179
|
-
VersionAdded: '2.14'
|
1180
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/InferredSpecType
|
1181
|
-
Inferences:
|
1182
|
-
channels: channel
|
1183
|
-
controllers: controller
|
1184
|
-
features: feature
|
1185
|
-
generator: generator
|
1186
|
-
helpers: helper
|
1187
|
-
jobs: job
|
1188
|
-
mailboxes: mailbox
|
1189
|
-
mailers: mailer
|
1190
|
-
models: model
|
1191
|
-
requests: request
|
1192
|
-
integration: request
|
1193
|
-
api: request
|
1194
|
-
routing: routing
|
1195
|
-
system: system
|
1196
|
-
views: view
|
1197
|
-
|
1198
|
-
RSpec/Rails/MinitestAssertions:
|
1199
|
-
Description: Check if using Minitest-like matchers.
|
1200
|
-
Enabled: pending
|
1201
|
-
VersionAdded: '2.17'
|
1202
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/MinitestAssertions
|
1203
|
-
|
1204
|
-
RSpec/Rails/NegationBeValid:
|
1205
|
-
Description: Enforces use of `be_invalid` or `not_to` for negated be_valid.
|
1206
|
-
Safe: false
|
1207
|
-
EnforcedStyle: not_to
|
1208
|
-
SupportedStyles:
|
1209
|
-
- not_to
|
1210
|
-
- be_invalid
|
1211
|
-
Enabled: pending
|
1212
|
-
VersionAdded: '2.23'
|
1213
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/NegationBeValid
|
1214
|
-
|
1215
|
-
RSpec/Rails/TravelAround:
|
1216
|
-
Description: Prefer to travel in `before` rather than `around`.
|
1217
|
-
Enabled: pending
|
1218
|
-
Safe: false
|
1219
|
-
VersionAdded: '2.19'
|
1220
|
-
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/TravelAround
|
data/config/obsoletion.yml
CHANGED
@@ -12,25 +12,24 @@ changed_parameters:
|
|
12
12
|
parameters: IgnoredPatterns
|
13
13
|
alternative: AllowedPatterns
|
14
14
|
severity: warning
|
15
|
+
- cops: RSpec/VerifiedDoubleReference
|
16
|
+
parameters: EnforcedStyle
|
17
|
+
reason: String references are not verifying unless the class is loaded.
|
15
18
|
|
16
|
-
|
17
|
-
RSpec/
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
RSpec/Capybara/
|
24
|
-
|
25
|
-
|
26
|
-
RSpec/
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
RSpec/Rails
|
31
|
-
RSpec/
|
32
|
-
RSpec/
|
33
|
-
RSpec/Rails/InferredSpecType: RSpecRails/InferredSpecType
|
34
|
-
RSpec/Rails/MinitestAssertions: RSpecRails/MinitestAssertions
|
35
|
-
RSpec/Rails/NegationBeValid: RSpecRails/NegationBeValid
|
36
|
-
RSpec/Rails/TravelAround: RSpecRails/TravelAround
|
19
|
+
split:
|
20
|
+
RSpec/FilePath:
|
21
|
+
alternatives:
|
22
|
+
- RSpec/SpecFilePathFormat
|
23
|
+
- RSpec/SpecFilePathSuffix
|
24
|
+
|
25
|
+
removed:
|
26
|
+
RSpec/Capybara/FeatureMethods:
|
27
|
+
reason: >
|
28
|
+
this cop has migrated to `RSpec/Dialect`. Please use `RSpec/Dialect` instead
|
29
|
+
RSpec/StringAsInstanceDoubleConstant:
|
30
|
+
reason: Please use `RSpec/VerifiedDoubleReference` instead
|
31
|
+
|
32
|
+
extracted:
|
33
|
+
RSpec/Rails/*: rubocop-rspec_rails
|
34
|
+
RSpec/FactoryBot/*: rubocop-factory_bot
|
35
|
+
RSpec/Capybara/*: rubocop-capybara
|
@@ -69,15 +69,13 @@ module RuboCop
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def check_for_unused_proxy(block, proxy)
|
72
|
-
name, = *proxy
|
73
|
-
|
74
72
|
find_arg_usage(block) do |usage|
|
75
|
-
return if usage.include?(s(:lvar, name))
|
73
|
+
return if usage.include?(s(:lvar, proxy.name))
|
76
74
|
end
|
77
75
|
|
78
76
|
add_offense(
|
79
77
|
proxy,
|
80
|
-
message: format(MSG_UNUSED_ARG, arg: name)
|
78
|
+
message: format(MSG_UNUSED_ARG, arg: proxy.name)
|
81
79
|
)
|
82
80
|
end
|
83
81
|
|