rubocop-rspec 2.24.1 → 2.26.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 +19 -0
- data/config/default.yml +19 -2
- data/lib/rubocop/cop/rspec/around_block.rb +3 -3
- data/lib/rubocop/cop/rspec/be.rb +1 -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 +2 -2
- data/lib/rubocop/cop/rspec/before_after_all.rb +7 -13
- data/lib/rubocop/cop/rspec/capybara/feature_methods.rb +2 -2
- data/lib/rubocop/cop/rspec/change_by_zero.rb +3 -3
- data/lib/rubocop/cop/rspec/context_method.rb +2 -2
- data/lib/rubocop/cop/rspec/context_wording.rb +1 -1
- data/lib/rubocop/cop/rspec/describe_symbol.rb +1 -1
- data/lib/rubocop/cop/rspec/described_class.rb +5 -5
- data/lib/rubocop/cop/rspec/empty_example_group.rb +2 -2
- data/lib/rubocop/cop/rspec/empty_line_after_example.rb +2 -2
- data/lib/rubocop/cop/rspec/example_length.rb +11 -5
- data/lib/rubocop/cop/rspec/example_wording.rb +11 -2
- data/lib/rubocop/cop/rspec/excessive_docstring_spacing.rb +1 -1
- data/lib/rubocop/cop/rspec/expect_change.rb +2 -2
- data/lib/rubocop/cop/rspec/focus.rb +2 -2
- data/lib/rubocop/cop/rspec/hook_argument.rb +2 -2
- data/lib/rubocop/cop/rspec/hooks_before_examples.rb +1 -1
- data/lib/rubocop/cop/rspec/implicit_block_expectation.rb +2 -2
- data/lib/rubocop/cop/rspec/implicit_expect.rb +1 -1
- data/lib/rubocop/cop/rspec/implicit_subject.rb +2 -2
- data/lib/rubocop/cop/rspec/instance_spy.rb +2 -2
- data/lib/rubocop/cop/rspec/instance_variable.rb +2 -2
- data/lib/rubocop/cop/rspec/iterated_expectation.rb +3 -3
- data/lib/rubocop/cop/rspec/let_before_examples.rb +1 -1
- data/lib/rubocop/cop/rspec/let_setup.rb +1 -1
- data/lib/rubocop/cop/rspec/message_expectation.rb +1 -1
- data/lib/rubocop/cop/rspec/metadata_style.rb +5 -0
- data/lib/rubocop/cop/rspec/mixin/metadata.rb +3 -3
- data/lib/rubocop/cop/rspec/mixin/skip_or_pending.rb +2 -2
- data/lib/rubocop/cop/rspec/multiple_expectations.rb +2 -2
- data/lib/rubocop/cop/rspec/pending.rb +1 -1
- data/lib/rubocop/cop/rspec/pending_without_reason.rb +1 -1
- data/lib/rubocop/cop/rspec/predicate_matcher.rb +6 -6
- data/lib/rubocop/cop/rspec/rails/avoid_setup_hook.rb +1 -1
- data/lib/rubocop/cop/rspec/rails/have_http_status.rb +1 -1
- data/lib/rubocop/cop/rspec/rails/http_status.rb +13 -19
- data/lib/rubocop/cop/rspec/rails/minitest_assertions.rb +2 -2
- data/lib/rubocop/cop/rspec/receive_counts.rb +1 -1
- data/lib/rubocop/cop/rspec/receive_messages.rb +1 -1
- data/lib/rubocop/cop/rspec/redundant_predicate_matcher.rb +65 -0
- data/lib/rubocop/cop/rspec/remove_const.rb +40 -0
- data/lib/rubocop/cop/rspec/repeated_example_group_body.rb +1 -1
- data/lib/rubocop/cop/rspec/repeated_example_group_description.rb +2 -2
- data/lib/rubocop/cop/rspec/repeated_include_example.rb +1 -1
- data/lib/rubocop/cop/rspec/return_from_stub.rb +1 -1
- data/lib/rubocop/cop/rspec/shared_context.rb +1 -1
- data/lib/rubocop/cop/rspec/shared_examples.rb +63 -16
- data/lib/rubocop/cop/rspec/single_argument_message_chain.rb +1 -1
- data/lib/rubocop/cop/rspec/spec_file_path_format.rb +5 -5
- data/lib/rubocop/cop/rspec/stubbed_mock.rb +1 -1
- data/lib/rubocop/cop/rspec/subject_stub.rb +4 -4
- data/lib/rubocop/cop/rspec/unspecified_exception.rb +2 -2
- data/lib/rubocop/cop/rspec/variable_definition.rb +2 -2
- data/lib/rubocop/cop/rspec/verified_doubles.rb +1 -1
- data/lib/rubocop/cop/rspec/void_expect.rb +3 -3
- data/lib/rubocop/cop/rspec_cops.rb +2 -0
- data/lib/rubocop/rspec/language.rb +8 -8
- data/lib/rubocop/rspec/version.rb +1 -1
- data/lib/rubocop/rspec/wording.rb +8 -0
- metadata +10 -8
@@ -68,7 +68,7 @@ module RuboCop
|
|
68
68
|
# @param node [RuboCop::AST::Node]
|
69
69
|
#
|
70
70
|
# @yield [Symbol] subject name
|
71
|
-
def_node_matcher :subject?,
|
71
|
+
def_node_matcher :subject?, <<~PATTERN
|
72
72
|
(block
|
73
73
|
(send nil?
|
74
74
|
{ #Subjects.all (sym $_) | $#Subjects.all }
|
@@ -77,7 +77,7 @@ module RuboCop
|
|
77
77
|
|
78
78
|
# @!method let?(node)
|
79
79
|
# Find a memoized helper
|
80
|
-
def_node_matcher :let?,
|
80
|
+
def_node_matcher :let?, <<~PATTERN
|
81
81
|
(block
|
82
82
|
(send nil? :let (sym $_)
|
83
83
|
) args ...)
|
@@ -94,7 +94,7 @@ module RuboCop
|
|
94
94
|
# expect(foo).to receive(:bar).with(1)
|
95
95
|
# expect(foo).to receive(:bar).with(1).and_return(2)
|
96
96
|
#
|
97
|
-
def_node_matcher :message_expectation?,
|
97
|
+
def_node_matcher :message_expectation?, <<~PATTERN
|
98
98
|
(send
|
99
99
|
{
|
100
100
|
(send nil? { :expect :allow } (send nil? %))
|
@@ -106,7 +106,7 @@ module RuboCop
|
|
106
106
|
PATTERN
|
107
107
|
|
108
108
|
# @!method message_expectation_matcher?(node)
|
109
|
-
def_node_search :message_expectation_matcher?,
|
109
|
+
def_node_search :message_expectation_matcher?, <<~PATTERN
|
110
110
|
(send nil? {
|
111
111
|
:receive :receive_messages :receive_message_chain :have_received
|
112
112
|
} ...)
|
@@ -35,7 +35,7 @@ module RuboCop
|
|
35
35
|
RESTRICT_ON_SEND = %i[to].freeze
|
36
36
|
|
37
37
|
# @!method empty_raise_error_or_exception(node)
|
38
|
-
def_node_matcher :empty_raise_error_or_exception,
|
38
|
+
def_node_matcher :empty_raise_error_or_exception, <<~PATTERN
|
39
39
|
(send
|
40
40
|
(block
|
41
41
|
(send nil? :expect) ...)
|
@@ -57,7 +57,7 @@ module RuboCop
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def block_with_args?(node)
|
60
|
-
return unless node&.block_type?
|
60
|
+
return false unless node&.block_type?
|
61
61
|
|
62
62
|
node.arguments?
|
63
63
|
end
|
@@ -60,8 +60,8 @@ module RuboCop
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def style_offense?(variable)
|
63
|
-
style == :symbols && string?(variable) ||
|
64
|
-
style == :strings && symbol?(variable)
|
63
|
+
(style == :symbols && string?(variable)) ||
|
64
|
+
(style == :strings && symbol?(variable))
|
65
65
|
end
|
66
66
|
|
67
67
|
def string?(node)
|
@@ -18,12 +18,12 @@ module RuboCop
|
|
18
18
|
RESTRICT_ON_SEND = %i[expect].freeze
|
19
19
|
|
20
20
|
# @!method expect?(node)
|
21
|
-
def_node_matcher :expect?,
|
21
|
+
def_node_matcher :expect?, <<~PATTERN
|
22
22
|
(send nil? :expect ...)
|
23
23
|
PATTERN
|
24
24
|
|
25
25
|
# @!method expect_block?(node)
|
26
|
-
def_node_matcher :expect_block?,
|
26
|
+
def_node_matcher :expect_block?, <<~PATTERN
|
27
27
|
(block #expect? (args) _body)
|
28
28
|
PATTERN
|
29
29
|
|
@@ -52,7 +52,7 @@ module RuboCop
|
|
52
52
|
return true unless parent
|
53
53
|
return true if parent.begin_type?
|
54
54
|
|
55
|
-
|
55
|
+
parent.block_type? && parent.body == expect
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
@@ -106,6 +106,8 @@ require_relative 'rspec/receive_counts'
|
|
106
106
|
require_relative 'rspec/receive_messages'
|
107
107
|
require_relative 'rspec/receive_never'
|
108
108
|
require_relative 'rspec/redundant_around'
|
109
|
+
require_relative 'rspec/redundant_predicate_matcher'
|
110
|
+
require_relative 'rspec/remove_const'
|
109
111
|
require_relative 'rspec/repeated_description'
|
110
112
|
require_relative 'rspec/repeated_example'
|
111
113
|
require_relative 'rspec/repeated_example_group_body'
|
@@ -42,7 +42,7 @@ module RuboCop
|
|
42
42
|
PATTERN
|
43
43
|
|
44
44
|
# @!method example_group_with_body?(node)
|
45
|
-
def_node_matcher :example_group_with_body?,
|
45
|
+
def_node_matcher :example_group_with_body?, <<~PATTERN
|
46
46
|
(block (send #rspec? #ExampleGroups.all ...) args !nil?)
|
47
47
|
PATTERN
|
48
48
|
|
@@ -50,15 +50,15 @@ module RuboCop
|
|
50
50
|
def_node_matcher :example?, '(block (send nil? #Examples.all ...) ...)'
|
51
51
|
|
52
52
|
# @!method hook?(node)
|
53
|
-
def_node_matcher :hook?,
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
53
|
+
def_node_matcher :hook?, <<~PATTERN
|
54
|
+
{
|
55
|
+
(numblock (send nil? #Hooks.all ...) ...)
|
56
|
+
(block (send nil? #Hooks.all ...) ...)
|
57
|
+
}
|
58
58
|
PATTERN
|
59
59
|
|
60
60
|
# @!method let?(node)
|
61
|
-
def_node_matcher :let?,
|
61
|
+
def_node_matcher :let?, <<~PATTERN
|
62
62
|
{
|
63
63
|
(block (send nil? #Helpers.all ...) ...)
|
64
64
|
(send nil? #Helpers.all _ block_pass)
|
@@ -66,7 +66,7 @@ module RuboCop
|
|
66
66
|
PATTERN
|
67
67
|
|
68
68
|
# @!method include?(node)
|
69
|
-
def_node_matcher :include?,
|
69
|
+
def_node_matcher :include?, <<~PATTERN
|
70
70
|
{
|
71
71
|
(block (send nil? #Includes.all ...) ...)
|
72
72
|
(send nil? #Includes.all ...)
|
@@ -6,6 +6,8 @@ module RuboCop
|
|
6
6
|
class Wording
|
7
7
|
SHOULDNT_PREFIX = /\Ashould(?:n't| not)\b/i.freeze
|
8
8
|
SHOULDNT_BE_PREFIX = /#{SHOULDNT_PREFIX} be\b/i.freeze
|
9
|
+
WILL_NOT_PREFIX = /\Awill not\b/i.freeze
|
10
|
+
WONT_PREFIX = /\Awon't\b/i.freeze
|
9
11
|
ES_SUFFIX_PATTERN = /(?:o|s|x|ch|sh|z)\z/i.freeze
|
10
12
|
IES_SUFFIX_PATTERN = /[^aeou]y\z/i.freeze
|
11
13
|
|
@@ -15,16 +17,22 @@ module RuboCop
|
|
15
17
|
@replacements = replace
|
16
18
|
end
|
17
19
|
|
20
|
+
# rubocop:disable Metrics/MethodLength
|
18
21
|
def rewrite
|
19
22
|
case text
|
20
23
|
when SHOULDNT_BE_PREFIX
|
21
24
|
replace_prefix(SHOULDNT_BE_PREFIX, 'is not')
|
22
25
|
when SHOULDNT_PREFIX
|
23
26
|
replace_prefix(SHOULDNT_PREFIX, 'does not')
|
27
|
+
when WILL_NOT_PREFIX
|
28
|
+
replace_prefix(WILL_NOT_PREFIX, 'does not')
|
29
|
+
when WONT_PREFIX
|
30
|
+
replace_prefix(WONT_PREFIX, 'does not')
|
24
31
|
else
|
25
32
|
remove_should_and_pluralize
|
26
33
|
end
|
27
34
|
end
|
35
|
+
# rubocop:enable Metrics/MethodLength
|
28
36
|
|
29
37
|
private
|
30
38
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.26.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Backus
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2024-01-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rubocop
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '1.
|
21
|
+
version: '1.40'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: '1.
|
28
|
+
version: '1.40'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rubocop-capybara
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -54,9 +54,9 @@ dependencies:
|
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '2.22'
|
57
|
-
description: |
|
58
|
-
|
59
|
-
|
57
|
+
description: |
|
58
|
+
Code style checking for RSpec files.
|
59
|
+
A plugin for the RuboCop code style enforcing & linting tool.
|
60
60
|
email:
|
61
61
|
- johncbackus@gmail.com
|
62
62
|
- ian@nevir.net
|
@@ -185,6 +185,8 @@ files:
|
|
185
185
|
- lib/rubocop/cop/rspec/receive_messages.rb
|
186
186
|
- lib/rubocop/cop/rspec/receive_never.rb
|
187
187
|
- lib/rubocop/cop/rspec/redundant_around.rb
|
188
|
+
- lib/rubocop/cop/rspec/redundant_predicate_matcher.rb
|
189
|
+
- lib/rubocop/cop/rspec/remove_const.rb
|
188
190
|
- lib/rubocop/cop/rspec/repeated_description.rb
|
189
191
|
- lib/rubocop/cop/rspec/repeated_example.rb
|
190
192
|
- lib/rubocop/cop/rspec/repeated_example_group_body.rb
|
@@ -249,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
249
251
|
- !ruby/object:Gem::Version
|
250
252
|
version: '0'
|
251
253
|
requirements: []
|
252
|
-
rubygems_version: 3.4.
|
254
|
+
rubygems_version: 3.4.21
|
253
255
|
signing_key:
|
254
256
|
specification_version: 4
|
255
257
|
summary: Code style checking for RSpec files
|