rubocop-rspec 1.39.0 → 1.43.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -0
  3. data/CODE_OF_CONDUCT.md +17 -0
  4. data/README.md +1 -61
  5. data/config/default.yml +148 -20
  6. data/lib/rubocop-rspec.rb +4 -1
  7. data/lib/rubocop/cop/rspec/align_left_let_brace.rb +12 -19
  8. data/lib/rubocop/cop/rspec/align_right_let_brace.rb +12 -19
  9. data/lib/rubocop/cop/rspec/any_instance.rb +1 -1
  10. data/lib/rubocop/cop/rspec/around_block.rb +1 -1
  11. data/lib/rubocop/cop/rspec/base.rb +74 -0
  12. data/lib/rubocop/cop/rspec/be.rb +2 -2
  13. data/lib/rubocop/cop/rspec/be_eql.rb +6 -6
  14. data/lib/rubocop/cop/rspec/before_after_all.rb +1 -1
  15. data/lib/rubocop/cop/rspec/capybara/current_path_expectation.rb +19 -17
  16. data/lib/rubocop/cop/rspec/capybara/feature_methods.rb +14 -12
  17. data/lib/rubocop/cop/rspec/capybara/visibility_matcher.rb +27 -12
  18. data/lib/rubocop/cop/rspec/context_method.rb +7 -9
  19. data/lib/rubocop/cop/rspec/context_wording.rb +3 -3
  20. data/lib/rubocop/cop/rspec/cop.rb +2 -86
  21. data/lib/rubocop/cop/rspec/describe_class.rb +20 -27
  22. data/lib/rubocop/cop/rspec/describe_method.rb +14 -6
  23. data/lib/rubocop/cop/rspec/describe_symbol.rb +2 -2
  24. data/lib/rubocop/cop/rspec/described_class.rb +12 -9
  25. data/lib/rubocop/cop/rspec/described_class_module_wrapping.rb +1 -1
  26. data/lib/rubocop/cop/rspec/dialect.rb +5 -12
  27. data/lib/rubocop/cop/rspec/empty_example_group.rb +91 -7
  28. data/lib/rubocop/cop/rspec/empty_hook.rb +6 -10
  29. data/lib/rubocop/cop/rspec/empty_line_after_example.rb +5 -7
  30. data/lib/rubocop/cop/rspec/empty_line_after_example_group.rb +5 -9
  31. data/lib/rubocop/cop/rspec/empty_line_after_final_let.rb +8 -8
  32. data/lib/rubocop/cop/rspec/empty_line_after_hook.rb +5 -9
  33. data/lib/rubocop/cop/rspec/empty_line_after_subject.rb +6 -6
  34. data/lib/rubocop/cop/rspec/example_length.rb +1 -1
  35. data/lib/rubocop/cop/rspec/example_without_description.rb +1 -1
  36. data/lib/rubocop/cop/rspec/example_wording.rb +10 -11
  37. data/lib/rubocop/cop/rspec/expect_actual.rb +8 -11
  38. data/lib/rubocop/cop/rspec/expect_change.rb +10 -35
  39. data/lib/rubocop/cop/rspec/expect_in_hook.rb +3 -3
  40. data/lib/rubocop/cop/rspec/expect_output.rb +2 -2
  41. data/lib/rubocop/cop/rspec/factory_bot/attribute_defined_statically.rb +24 -21
  42. data/lib/rubocop/cop/rspec/factory_bot/create_list.rb +20 -22
  43. data/lib/rubocop/cop/rspec/factory_bot/factory_class_name.rb +7 -8
  44. data/lib/rubocop/cop/rspec/file_path.rb +54 -20
  45. data/lib/rubocop/cop/rspec/focus.rb +7 -11
  46. data/lib/rubocop/cop/rspec/hook_argument.rb +16 -23
  47. data/lib/rubocop/cop/rspec/hooks_before_examples.rb +13 -14
  48. data/lib/rubocop/cop/rspec/implicit_block_expectation.rb +1 -1
  49. data/lib/rubocop/cop/rspec/implicit_expect.rb +7 -15
  50. data/lib/rubocop/cop/rspec/implicit_subject.rb +16 -11
  51. data/lib/rubocop/cop/rspec/instance_spy.rb +18 -12
  52. data/lib/rubocop/cop/rspec/instance_variable.rb +4 -8
  53. data/lib/rubocop/cop/rspec/invalid_predicate_matcher.rb +3 -6
  54. data/lib/rubocop/cop/rspec/it_behaves_like.rb +5 -6
  55. data/lib/rubocop/cop/rspec/iterated_expectation.rb +1 -1
  56. data/lib/rubocop/cop/rspec/leading_subject.rb +24 -21
  57. data/lib/rubocop/cop/rspec/leaky_constant_declaration.rb +2 -5
  58. data/lib/rubocop/cop/rspec/let_before_examples.rb +13 -11
  59. data/lib/rubocop/cop/rspec/let_setup.rb +21 -6
  60. data/lib/rubocop/cop/rspec/message_chain.rb +7 -6
  61. data/lib/rubocop/cop/rspec/message_expectation.rb +2 -2
  62. data/lib/rubocop/cop/rspec/message_spies.rb +2 -3
  63. data/lib/rubocop/cop/rspec/missing_example_group_argument.rb +1 -1
  64. data/lib/rubocop/cop/rspec/multiple_describes.rb +11 -8
  65. data/lib/rubocop/cop/rspec/multiple_expectations.rb +7 -11
  66. data/lib/rubocop/cop/rspec/multiple_memoized_helpers.rb +148 -0
  67. data/lib/rubocop/cop/rspec/multiple_subjects.rb +18 -19
  68. data/lib/rubocop/cop/rspec/named_subject.rb +2 -2
  69. data/lib/rubocop/cop/rspec/nested_groups.rb +12 -13
  70. data/lib/rubocop/cop/rspec/not_to_not.rb +5 -6
  71. data/lib/rubocop/cop/rspec/overwriting_setup.rb +1 -1
  72. data/lib/rubocop/cop/rspec/pending.rb +1 -1
  73. data/lib/rubocop/cop/rspec/predicate_matcher.rb +32 -69
  74. data/lib/rubocop/cop/rspec/rails/http_status.rb +7 -9
  75. data/lib/rubocop/cop/rspec/receive_counts.rb +15 -17
  76. data/lib/rubocop/cop/rspec/receive_never.rb +12 -12
  77. data/lib/rubocop/cop/rspec/repeated_description.rb +1 -1
  78. data/lib/rubocop/cop/rspec/repeated_example.rb +2 -2
  79. data/lib/rubocop/cop/rspec/repeated_example_group_body.rb +12 -2
  80. data/lib/rubocop/cop/rspec/repeated_example_group_description.rb +1 -1
  81. data/lib/rubocop/cop/rspec/return_from_stub.rb +12 -22
  82. data/lib/rubocop/cop/rspec/scattered_let.rb +8 -11
  83. data/lib/rubocop/cop/rspec/scattered_setup.rb +1 -1
  84. data/lib/rubocop/cop/rspec/shared_context.rb +8 -21
  85. data/lib/rubocop/cop/rspec/shared_examples.rb +7 -9
  86. data/lib/rubocop/cop/rspec/single_argument_message_chain.rb +15 -18
  87. data/lib/rubocop/cop/rspec/subject_stub.rb +25 -53
  88. data/lib/rubocop/cop/rspec/unspecified_exception.rb +1 -1
  89. data/lib/rubocop/cop/rspec/variable_definition.rb +56 -0
  90. data/lib/rubocop/cop/rspec/variable_name.rb +66 -0
  91. data/lib/rubocop/cop/rspec/verified_doubles.rb +1 -1
  92. data/lib/rubocop/cop/rspec/void_expect.rb +1 -1
  93. data/lib/rubocop/cop/rspec/yield.rb +14 -11
  94. data/lib/rubocop/cop/rspec_cops.rb +3 -0
  95. data/lib/rubocop/rspec/corrector/move_node.rb +7 -5
  96. data/lib/rubocop/rspec/description_extractor.rb +2 -6
  97. data/lib/rubocop/rspec/{blank_line_separation.rb → empty_line_separation.rb} +13 -10
  98. data/lib/rubocop/rspec/example_group.rb +21 -49
  99. data/lib/rubocop/rspec/factory_bot.rb +7 -1
  100. data/lib/rubocop/rspec/language.rb +6 -4
  101. data/lib/rubocop/rspec/language/node_pattern.rb +10 -1
  102. data/lib/rubocop/rspec/top_level_describe.rb +2 -2
  103. data/lib/rubocop/rspec/top_level_group.rb +57 -0
  104. data/lib/rubocop/rspec/variable.rb +16 -0
  105. data/lib/rubocop/rspec/version.rb +1 -1
  106. metadata +32 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9bb27c4586307d99c6c4575351d9974dc872229cd91b5f5f4deb99530c7e0297
4
- data.tar.gz: 6efec312480c6800454ceb42eec2905e9d093bcc1f107be2f60c36a0a3ac0f4b
3
+ metadata.gz: f4a711b9695e84aeeb5dd5775251d1de3bb4e2517e4d9489e4fe8df85095be2d
4
+ data.tar.gz: 7f45719f6b6f89106003d5af2b4f4add6374b0d558220d9eb10974e9d944a043
5
5
  SHA512:
6
- metadata.gz: 4c0ae32d6609fa83633e18a6fe0172c8d1dc849595180f2a2b2a3c7f673dd50dc6eb695b9c880498be42ca7e9dc468f1f67c43d0677c0ae0e845b8c89630b673
7
- data.tar.gz: c0e23ebca292ecff3d294d4bbe6b9a020be769cb834115f8e9dbd55d3dbd798fda2ddc548799a869b1620810e355ed7aee8a3210fecb5fa77f844a815361c2b8
6
+ metadata.gz: 25069ce548603cbea393b93ac9047b3356b3dea575f2007a3f385a88c27c7112f127b3871ea0472fa45a207c08e9d41fb0e9e5702aaa1cb9bb4de21093257212
7
+ data.tar.gz: 74e4fcf11b03a47c29ef8959fef7faa44215d3177c7184e2e2473f24a9b8cffa3eb71f6e42c9dc8610b159813c63ccde4f17f5a9d858b686082893d8d006ceba
@@ -2,6 +2,43 @@
2
2
 
3
3
  ## Master (Unreleased)
4
4
 
5
+ ## 1.43.1 (2020-08-17)
6
+
7
+ * Fix `RSpec/FilePath` when checking a file defining e.g. an empty class. ([@bquorning][])
8
+
9
+ ## 1.43.0 (2020-08-17)
10
+
11
+ * 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][])
12
+ * Add support for subject detection after includes and example groups in `RSpec/LeadingSubject`. ([@pirj][])
13
+ * Ignore trailing punctuation in context description prefix. ([@elliterate][])
14
+ * Relax `RSpec/VariableDefinition` cop so interpolated and multiline strings are accepted even when configured to enforce the `symbol` style. ([@bquorning][])
15
+ * Fix `RSpec/EmptyExampleGroup` to flag example groups with examples in invalid scopes. ([@mlarraz][])
16
+ * Fix `RSpec/EmptyExampleGroup` to ignore examples groups with examples defined inside iterators. ([@pirj][])
17
+ * Improve `RSpec/NestedGroups`, `RSpec/FilePath`, `RSpec/DescribeMethod`, `RSpec/MultipleDescribes`, `RSpec/DescribeClass`'s top-level example group detection. ([@pirj][])
18
+ * Add detection of `let!` with a block-pass or a string literal to `RSpec/LetSetup`. ([@pirj][])
19
+ * Add `IgnoredPatterns` configuration option to `RSpec/VariableName`. ([@jtannas][])
20
+ * Add `RSpec/MultipleMemoizedHelpers` cop. ([@mockdeep][])
21
+
22
+ ## 1.42.0 (2020-07-09)
23
+
24
+ * Update RuboCop dependency to 0.87.0 because of changes to internal APIs. ([@bquorning][], [@Darhazer][])
25
+
26
+ ## 1.41.0 (2020-07-03)
27
+
28
+ * Extend the list of Rails spec types for `RSpec/DescribeClass`. ([@pirj][])
29
+ * Fix `FactoryBot/AttributeDefinedStatically` to allow `#traits_for_enum` without a block. ([@harrylewis][])
30
+ * Improve the performance of `FactoryBot/AttributeDefinedStatically`, `RSpec/InstanceVariable`, `RSpec/LetSetup`, `RSpec/NestedGroups` and `RSpec/ReturnFromStub`. ([@andrykonchin][])
31
+
32
+ ## 1.40.0 (2020-06-11)
33
+
34
+ * Add new `RSpec/VariableName` cop. ([@tejasbubane][])
35
+ * Add new `RSpec/VariableDefinition` cop. ([@tejasbubane][])
36
+ * Expand `Capybara/VisibilityMatcher` to support more than just `have_selector`. ([@twalpole][])
37
+ * Add new `SpecSuffixOnly` option to `RSpec/FilePath` cop. ([@zdennis][])
38
+ * Allow `RSpec/RepeatedExampleGroupBody` to differ only by described_class. ([@robotdana][])
39
+ * Fix `RSpec/FilePath` detection across sibling directories. ([@rolfschmidt][])
40
+ * Improve the performance of `RSpec/SubjectStub` by an order of magnitude. ([@andrykonchin][])
41
+
5
42
  ## 1.39.0 (2020-05-01)
6
43
 
7
44
  * Fix `RSpec/FilePath` detection when absolute path includes test subject. ([@eitoball][])
@@ -503,3 +540,13 @@ Compatibility release so users can upgrade RuboCop to 0.51.0. No new features.
503
540
  [@aried3r]: https://github.com/aried3r
504
541
  [@AlexWayfer]: https://github.com/AlexWayfer
505
542
  [@tejasbubane]: https://github.com/tejasbubane
543
+ [@twalpole]: https://github.com/twalpole
544
+ [@zdennis]: https://github.com/zdennis
545
+ [@robotdana]: https://github.com/robotdana
546
+ [@rolfschmidt]: https://github.com/rolfschmidt
547
+ [@andrykonchin]: https://github.com/andrykonchin
548
+ [@harrylewis]: https://github.com/harrylewis
549
+ [@elliterate]: https://github.com/elliterate
550
+ [@mlarraz]: https://github.com/mlarraz
551
+ [@jtannas]: https://github.com/jtannas
552
+ [@mockdeep]: https://github.com/mockdeep
@@ -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](http://rubocop-rspec.readthedocs.io).
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).
@@ -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,86 +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 level describe is a constant.
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
 
108
127
  RSpec/EmptyHook:
109
128
  Description: Checks for empty before and after hooks.
110
129
  Enabled: true
111
- VersionAdded: 1.39.0
130
+ VersionAdded: '1.39'
112
131
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyHook
113
132
 
114
133
  RSpec/EmptyLineAfterExample:
115
134
  Description: Checks if there is an empty line after example blocks.
116
135
  Enabled: true
117
136
  AllowConsecutiveOneLiners: true
137
+ VersionAdded: '1.36'
118
138
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExample
119
139
 
120
140
  RSpec/EmptyLineAfterExampleGroup:
121
141
  Description: Checks if there is an empty line after example group blocks.
122
142
  Enabled: true
143
+ VersionAdded: '1.27'
123
144
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterExampleGroup
124
145
 
125
146
  RSpec/EmptyLineAfterFinalLet:
126
147
  Description: Checks if there is an empty line after the last let block.
127
148
  Enabled: true
149
+ VersionAdded: '1.14'
128
150
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterFinalLet
129
151
 
130
152
  RSpec/EmptyLineAfterHook:
131
153
  Description: Checks if there is an empty line after hook blocks.
132
154
  Enabled: true
155
+ VersionAdded: '1.27'
133
156
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterHook
134
157
 
135
158
  RSpec/EmptyLineAfterSubject:
136
159
  Description: Checks if there is an empty line after subject block.
137
160
  Enabled: true
161
+ VersionAdded: '1.14'
138
162
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyLineAfterSubject
139
163
 
140
164
  RSpec/ExampleLength:
141
165
  Description: Checks for long examples.
142
166
  Enabled: true
143
167
  Max: 5
168
+ VersionAdded: '1.5'
144
169
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleLength
145
170
 
146
171
  RSpec/ExampleWithoutDescription:
@@ -151,6 +176,7 @@ RSpec/ExampleWithoutDescription:
151
176
  - always_allow
152
177
  - single_line_only
153
178
  - disallow
179
+ VersionAdded: '1.22'
154
180
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWithoutDescription
155
181
 
156
182
  RSpec/ExampleWording:
@@ -162,6 +188,8 @@ RSpec/ExampleWording:
162
188
  have: has
163
189
  HAVE: HAS
164
190
  IgnoredWords: []
191
+ VersionAdded: '1.0'
192
+ VersionChanged: '1.2'
165
193
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExampleWording
166
194
 
167
195
  RSpec/ExpectActual:
@@ -169,6 +197,7 @@ RSpec/ExpectActual:
169
197
  Enabled: true
170
198
  Exclude:
171
199
  - spec/routing/**/*
200
+ VersionAdded: '1.7'
172
201
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectActual
173
202
 
174
203
  RSpec/ExpectChange:
@@ -178,30 +207,37 @@ RSpec/ExpectChange:
178
207
  SupportedStyles:
179
208
  - method_call
180
209
  - block
210
+ VersionAdded: '1.22'
181
211
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectChange
182
212
 
183
213
  RSpec/ExpectInHook:
184
- Enabled: true
185
214
  Description: Do not use `expect` in hooks such as `before`.
215
+ Enabled: true
216
+ VersionAdded: '1.16'
186
217
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInHook
187
218
 
188
219
  RSpec/ExpectOutput:
189
220
  Description: Checks for opportunities to use `expect { ... }.to output`.
190
221
  Enabled: true
222
+ VersionAdded: '1.10'
191
223
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectOutput
192
224
 
193
225
  RSpec/FilePath:
194
- Description: Checks that spec file paths are consistent with the test subject.
226
+ Description: Checks that spec file paths are consistent and well-formed.
195
227
  Enabled: true
196
228
  CustomTransform:
197
229
  RuboCop: rubocop
198
230
  RSpec: rspec
199
231
  IgnoreMethods: false
232
+ SpecSuffixOnly: false
233
+ VersionAdded: '1.2'
234
+ VersionChanged: '1.40'
200
235
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FilePath
201
236
 
202
237
  RSpec/Focus:
203
238
  Description: Checks if examples are focused.
204
239
  Enabled: true
240
+ VersionAdded: '1.5'
205
241
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Focus
206
242
 
207
243
  RSpec/HookArgument:
@@ -212,16 +248,19 @@ RSpec/HookArgument:
212
248
  - implicit
213
249
  - each
214
250
  - example
251
+ VersionAdded: '1.7'
215
252
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HookArgument
216
253
 
217
254
  RSpec/HooksBeforeExamples:
218
- Enabled: true
219
255
  Description: Checks for before/around/after hooks that come after an example.
256
+ Enabled: true
257
+ VersionAdded: '1.29'
220
258
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HooksBeforeExamples
221
259
 
222
260
  RSpec/ImplicitBlockExpectation:
223
261
  Description: Check that implicit block expectation syntax is not used.
224
262
  Enabled: true
263
+ VersionAdded: '1.35'
225
264
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitBlockExpectation
226
265
 
227
266
  RSpec/ImplicitExpect:
@@ -231,32 +270,39 @@ RSpec/ImplicitExpect:
231
270
  SupportedStyles:
232
271
  - is_expected
233
272
  - should
273
+ VersionAdded: '1.8'
234
274
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitExpect
235
275
 
236
276
  RSpec/ImplicitSubject:
237
- Enabled: true
238
277
  Description: Checks for usage of implicit subject (`is_expected` / `should`).
278
+ Enabled: true
239
279
  EnforcedStyle: single_line_only
240
280
  SupportedStyles:
241
281
  - single_line_only
242
282
  - single_statement_only
243
283
  - disallow
284
+ VersionAdded: '1.29'
285
+ VersionChanged: '1.30'
244
286
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ImplicitSubject
245
287
 
246
288
  RSpec/InstanceSpy:
247
289
  Description: Checks for `instance_double` used with `have_received`.
248
290
  Enabled: true
291
+ VersionAdded: '1.12'
249
292
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceSpy
250
293
 
251
294
  RSpec/InstanceVariable:
252
295
  Description: Checks for instance variable usage in specs.
253
- AssignmentOnly: false
254
296
  Enabled: true
297
+ AssignmentOnly: false
298
+ VersionAdded: '1.0'
299
+ VersionChanged: '1.7'
255
300
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceVariable
256
301
 
257
302
  RSpec/InvalidPredicateMatcher:
258
303
  Description: Checks invalid usage for predicate matcher.
259
304
  Enabled: true
305
+ VersionAdded: '1.16'
260
306
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InvalidPredicateMatcher
261
307
 
262
308
  RSpec/ItBehavesLike:
@@ -266,36 +312,45 @@ RSpec/ItBehavesLike:
266
312
  SupportedStyles:
267
313
  - it_behaves_like
268
314
  - it_should_behave_like
315
+ VersionAdded: '1.13'
269
316
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ItBehavesLike
270
317
 
271
318
  RSpec/IteratedExpectation:
272
319
  Description: Check that `all` matcher is used instead of iterating over an array.
273
320
  Enabled: true
321
+ VersionAdded: '1.14'
274
322
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/IteratedExpectation
275
323
 
276
324
  RSpec/LeadingSubject:
277
325
  Description: Enforce that subject is the first definition in the test.
278
326
  Enabled: true
327
+ VersionAdded: '1.7'
328
+ VersionChanged: '1.14'
279
329
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeadingSubject
280
330
 
281
331
  RSpec/LeakyConstantDeclaration:
282
332
  Description: Checks that no class, module, or constant is declared.
283
333
  Enabled: true
334
+ VersionAdded: '1.35'
284
335
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LeakyConstantDeclaration
285
336
 
286
337
  RSpec/LetBeforeExamples:
287
338
  Description: Checks for `let` definitions that come after an example.
288
339
  Enabled: true
340
+ VersionAdded: '1.16'
341
+ VersionChanged: '1.22'
289
342
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetBeforeExamples
290
343
 
291
344
  RSpec/LetSetup:
292
345
  Description: Checks unreferenced `let!` calls being used for test setup.
293
346
  Enabled: true
347
+ VersionAdded: '1.7'
294
348
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetSetup
295
349
 
296
350
  RSpec/MessageChain:
297
351
  Description: Check that chains of messages are not being stubbed.
298
352
  Enabled: true
353
+ VersionAdded: '1.7'
299
354
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageChain
300
355
 
301
356
  RSpec/MessageExpectation:
@@ -305,6 +360,8 @@ RSpec/MessageExpectation:
305
360
  SupportedStyles:
306
361
  - allow
307
362
  - expect
363
+ VersionAdded: '1.7'
364
+ VersionChanged: '1.8'
308
365
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageExpectation
309
366
 
310
367
  RSpec/MessageSpies:
@@ -314,58 +371,78 @@ RSpec/MessageSpies:
314
371
  SupportedStyles:
315
372
  - have_received
316
373
  - receive
374
+ VersionAdded: '1.9'
317
375
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MessageSpies
318
376
 
319
377
  RSpec/MissingExampleGroupArgument:
320
378
  Description: Checks that the first argument to an example group is not empty.
321
379
  Enabled: true
380
+ VersionAdded: '1.28'
322
381
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MissingExampleGroupArgument
323
382
 
324
383
  RSpec/MultipleDescribes:
325
- Description: Checks for multiple top level describes.
384
+ Description: Checks for multiple top-level example groups.
326
385
  Enabled: true
386
+ VersionAdded: '1.0'
327
387
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleDescribes
328
388
 
329
389
  RSpec/MultipleExpectations:
330
390
  Description: Checks if examples contain too many `expect` calls.
331
391
  Enabled: true
332
392
  Max: 1
393
+ VersionAdded: '1.7'
394
+ VersionChanged: '1.21'
333
395
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleExpectations
334
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
+
335
405
  RSpec/MultipleSubjects:
336
406
  Description: Checks if an example group defines `subject` multiple times.
337
407
  Enabled: true
408
+ VersionAdded: '1.16'
338
409
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/MultipleSubjects
339
410
 
340
411
  RSpec/NamedSubject:
341
412
  Description: Checks for explicitly referenced test subjects.
342
413
  Enabled: true
343
414
  IgnoreSharedExamples: true
415
+ VersionAdded: 1.5.3
344
416
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NamedSubject
345
417
 
346
418
  RSpec/NestedGroups:
347
419
  Description: Checks for nested example groups.
348
420
  Enabled: true
349
421
  Max: 3
422
+ VersionAdded: '1.7'
423
+ VersionChanged: '1.10'
350
424
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NestedGroups
351
425
 
352
426
  RSpec/NotToNot:
353
427
  Description: Checks for consistent method usage for negating expectations.
428
+ Enabled: true
354
429
  EnforcedStyle: not_to
355
430
  SupportedStyles:
356
431
  - not_to
357
432
  - to_not
358
- Enabled: true
433
+ VersionAdded: '1.4'
359
434
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NotToNot
360
435
 
361
436
  RSpec/OverwritingSetup:
362
- Enabled: true
363
437
  Description: Checks if there is a let/subject that overwrites an existing one.
438
+ Enabled: true
439
+ VersionAdded: '1.14'
364
440
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/OverwritingSetup
365
441
 
366
442
  RSpec/Pending:
367
- Enabled: false
368
443
  Description: Checks for any pending or skipped examples.
444
+ Enabled: false
445
+ VersionAdded: '1.25'
369
446
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Pending
370
447
 
371
448
  RSpec/PredicateMatcher:
@@ -377,109 +454,156 @@ RSpec/PredicateMatcher:
377
454
  SupportedStyles:
378
455
  - inflected
379
456
  - explicit
457
+ SafeAutoCorrect: false
458
+ VersionAdded: '1.16'
380
459
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/PredicateMatcher
381
460
 
382
461
  RSpec/ReceiveCounts:
383
- Enabled: true
384
462
  Description: Check for `once` and `twice` receive counts matchers usage.
463
+ Enabled: true
464
+ VersionAdded: '1.26'
385
465
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveCounts
386
466
 
387
467
  RSpec/ReceiveNever:
388
- Enabled: true
389
468
  Description: Prefer `not_to receive(...)` over `receive(...).never`.
469
+ Enabled: true
470
+ VersionAdded: '1.28'
390
471
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReceiveNever
391
472
 
392
473
  RSpec/RepeatedDescription:
393
- Enabled: true
394
474
  Description: Check for repeated description strings in example groups.
475
+ Enabled: true
476
+ VersionAdded: '1.9'
395
477
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedDescription
396
478
 
397
479
  RSpec/RepeatedExample:
398
- Enabled: true
399
480
  Description: Check for repeated examples within example groups.
481
+ Enabled: true
482
+ VersionAdded: '1.10'
400
483
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExample
401
484
 
402
485
  RSpec/RepeatedExampleGroupBody:
403
- Enabled: true
404
486
  Description: Check for repeated describe and context block body.
487
+ Enabled: true
488
+ VersionAdded: '1.38'
405
489
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupBody
406
490
 
407
491
  RSpec/RepeatedExampleGroupDescription:
408
- Enabled: true
409
492
  Description: Check for repeated example group descriptions.
493
+ Enabled: true
494
+ VersionAdded: '1.38'
410
495
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/RepeatedExampleGroupDescription
411
496
 
412
497
  RSpec/ReturnFromStub:
413
- Enabled: true
414
498
  Description: Checks for consistent style of stub's return setting.
499
+ Enabled: true
415
500
  EnforcedStyle: and_return
416
501
  SupportedStyles:
417
502
  - and_return
418
503
  - block
504
+ VersionAdded: '1.16'
505
+ VersionChanged: '1.22'
419
506
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ReturnFromStub
420
507
 
421
508
  RSpec/ScatteredLet:
422
509
  Description: Checks for let scattered across the example group.
423
510
  Enabled: true
424
- StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredLet
511
+ VersionAdded: '1.14'
425
512
  VersionChanged: '1.39'
513
+ StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredLet
426
514
 
427
515
  RSpec/ScatteredSetup:
428
516
  Description: Checks for setup scattered across multiple hooks in an example group.
429
517
  Enabled: true
518
+ VersionAdded: '1.10'
430
519
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredSetup
431
520
 
432
521
  RSpec/SharedContext:
433
522
  Description: Checks for proper shared_context and shared_examples usage.
434
523
  Enabled: true
524
+ VersionAdded: '1.13'
435
525
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedContext
436
526
 
437
527
  RSpec/SharedExamples:
438
528
  Description: Enforces use of string to titleize shared examples.
439
529
  Enabled: true
530
+ VersionAdded: '1.25'
440
531
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SharedExamples
441
532
 
442
533
  RSpec/SingleArgumentMessageChain:
443
534
  Description: Checks that chains of messages contain more than one element.
444
535
  Enabled: true
536
+ VersionAdded: '1.9'
537
+ VersionChanged: '1.10'
445
538
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SingleArgumentMessageChain
446
539
 
447
540
  RSpec/SubjectStub:
448
541
  Description: Checks for stubbed test subjects.
449
542
  Enabled: true
543
+ VersionAdded: '1.7'
450
544
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/SubjectStub
451
545
 
452
546
  RSpec/UnspecifiedException:
453
547
  Description: Checks for a specified error in checking raised errors.
454
548
  Enabled: true
549
+ VersionAdded: '1.30'
455
550
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/UnspecifiedException
456
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
+
457
574
  RSpec/VerifiedDoubles:
458
575
  Description: Prefer using verifying doubles over normal doubles.
459
576
  Enabled: true
460
577
  IgnoreNameless: true
461
578
  IgnoreSymbolicNames: false
579
+ VersionAdded: 1.2.1
580
+ VersionChanged: '1.5'
462
581
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VerifiedDoubles
463
582
 
464
583
  RSpec/VoidExpect:
465
584
  Description: This cop checks void `expect()`.
466
585
  Enabled: true
586
+ VersionAdded: '1.16'
467
587
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/VoidExpect
468
588
 
469
589
  RSpec/Yield:
470
590
  Description: This cop checks for calling a block within a stub.
471
591
  Enabled: true
592
+ VersionAdded: '1.32'
472
593
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Yield
473
594
 
474
595
  Capybara/CurrentPathExpectation:
475
596
  Description: Checks that no expectations are set on Capybara's `current_path`.
476
597
  Enabled: true
598
+ VersionAdded: '1.18'
477
599
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/CurrentPathExpectation
478
600
 
479
601
  Capybara/FeatureMethods:
480
602
  Description: Checks for consistent method usage in feature specs.
481
603
  Enabled: true
482
604
  EnabledMethods: []
605
+ VersionAdded: '1.17'
606
+ VersionChanged: '1.25'
483
607
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/FeatureMethods
484
608
 
485
609
  Capybara/VisibilityMatcher:
@@ -491,6 +615,7 @@ Capybara/VisibilityMatcher:
491
615
  FactoryBot/AttributeDefinedStatically:
492
616
  Description: Always declare attribute values as blocks.
493
617
  Enabled: true
618
+ VersionAdded: '1.28'
494
619
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/AttributeDefinedStatically
495
620
 
496
621
  FactoryBot/CreateList:
@@ -500,11 +625,13 @@ FactoryBot/CreateList:
500
625
  SupportedStyles:
501
626
  - create_list
502
627
  - n_times
628
+ VersionAdded: '1.25'
503
629
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/CreateList
504
630
 
505
631
  FactoryBot/FactoryClassName:
506
632
  Description: Use string value when setting the class attribute explicitly.
507
633
  Enabled: true
634
+ VersionAdded: '1.37'
508
635
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/FactoryClassName
509
636
 
510
637
  Rails/HttpStatus:
@@ -514,4 +641,5 @@ Rails/HttpStatus:
514
641
  SupportedStyles:
515
642
  - numeric
516
643
  - symbolic
644
+ VersionAdded: '1.23'
517
645
  StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/HttpStatus