rubocop-rspec 2.29.2 → 3.0.1
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 +28 -0
- data/README.md +1 -1
- data/config/default.yml +62 -264
- data/config/obsoletion.yml +11 -0
- data/lib/rubocop/cop/rspec/base.rb +0 -1
- data/lib/rubocop/cop/rspec/dialect.rb +13 -0
- data/lib/rubocop/cop/rspec/expect_actual.rb +1 -1
- 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/leaky_constant_declaration.rb +1 -1
- data/lib/rubocop/cop/rspec/missing_expectation_target_method.rb +54 -0
- data/lib/rubocop/cop/rspec/multiple_describes.rb +1 -1
- data/lib/rubocop/cop/rspec/multiple_expectations.rb +2 -2
- data/lib/rubocop/cop/rspec/multiple_memoized_helpers.rb +2 -4
- data/lib/rubocop/cop/rspec/named_subject.rb +5 -2
- data/lib/rubocop/cop/rspec/predicate_matcher.rb +1 -1
- data/lib/rubocop/cop/rspec/remove_const.rb +0 -1
- data/lib/rubocop/cop/rspec/scattered_setup.rb +1 -1
- data/lib/rubocop/cop/rspec/sort_metadata.rb +1 -1
- data/lib/rubocop/cop/rspec/stubbed_mock.rb +3 -1
- data/lib/rubocop/cop/rspec/subject_stub.rb +2 -2
- data/lib/rubocop/cop/rspec_cops.rb +2 -25
- data/lib/rubocop/rspec/concept.rb +0 -1
- data/lib/rubocop/rspec/config_formatter.rb +1 -24
- data/lib/rubocop/rspec/cop/generator.rb +25 -0
- data/lib/rubocop/rspec/language.rb +0 -1
- 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.rb +1 -17
- metadata +7 -69
- 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/language/node_pattern.rb +0 -48
@@ -29,6 +29,19 @@ module RuboCop
|
|
29
29
|
# PreferredMethods:
|
30
30
|
# context: describe
|
31
31
|
#
|
32
|
+
# If you were previously using the `RSpec/Capybara/FeatureMethods` cop and
|
33
|
+
# want to keep disabling all Capybara-specific methods that have the same
|
34
|
+
# native RSpec method (e.g. are just aliases), use the following config:
|
35
|
+
#
|
36
|
+
# RSpec/Dialect:
|
37
|
+
# PreferredMethods:
|
38
|
+
# background: :before
|
39
|
+
# scenario: :it
|
40
|
+
# xscenario: :xit
|
41
|
+
# given: :let
|
42
|
+
# given!: :let!
|
43
|
+
# feature: :describe
|
44
|
+
#
|
32
45
|
# You can expect the following behavior:
|
33
46
|
#
|
34
47
|
# @example
|
@@ -27,7 +27,7 @@ module RuboCop
|
|
27
27
|
# @!method expectation(node)
|
28
28
|
def_node_search :expectation, '(send nil? #Expectations.all ...)'
|
29
29
|
|
30
|
-
def on_block(node)
|
30
|
+
def on_block(node)
|
31
31
|
return unless hook?(node)
|
32
32
|
return if node.body.nil?
|
33
33
|
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module RSpec
|
6
|
+
# Do not use `expect` in let.
|
7
|
+
#
|
8
|
+
# @example
|
9
|
+
# # bad
|
10
|
+
# let(:foo) do
|
11
|
+
# expect(something).to eq 'foo'
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# # good
|
15
|
+
# it do
|
16
|
+
# expect(something).to eq 'foo'
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
class ExpectInLet < Base
|
20
|
+
MSG = 'Do not use `%<expect>s` in let'
|
21
|
+
|
22
|
+
# @!method expectation(node)
|
23
|
+
def_node_search :expectation, '(send nil? #Expectations.all ...)'
|
24
|
+
|
25
|
+
def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler
|
26
|
+
return unless let?(node)
|
27
|
+
return if node.body.nil?
|
28
|
+
|
29
|
+
expectation(node.body) do |expect|
|
30
|
+
add_offense(expect.loc.selector, message: message(expect))
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def message(expect)
|
37
|
+
format(MSG, expect: expect.method_name)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module RSpec
|
6
|
+
# Checks if `.to`, `not_to` or `to_not` are used.
|
7
|
+
#
|
8
|
+
# The RSpec::Expectations::ExpectationTarget must use `to`, `not_to` or
|
9
|
+
# `to_not` to run. Therefore, this cop checks if other methods are used.
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# # bad
|
13
|
+
# expect(something).kind_of? Foo
|
14
|
+
# is_expected == 42
|
15
|
+
# expect{something}.eq? BarError
|
16
|
+
#
|
17
|
+
# # good
|
18
|
+
# expect(something).to be_a Foo
|
19
|
+
# is_expected.to eq 42
|
20
|
+
# expect{something}.to raise_error BarError
|
21
|
+
#
|
22
|
+
class MissingExpectationTargetMethod < Base
|
23
|
+
MSG = 'Use `.to`, `.not_to` or `.to_not` to set an expectation.'
|
24
|
+
RESTRICT_ON_SEND = %i[expect is_expected].freeze
|
25
|
+
|
26
|
+
# @!method expect?(node)
|
27
|
+
def_node_matcher :expect?, <<~PATTERN
|
28
|
+
{
|
29
|
+
(send nil? :expect ...)
|
30
|
+
(send nil? :is_expected)
|
31
|
+
}
|
32
|
+
PATTERN
|
33
|
+
|
34
|
+
# @!method expect_block?(node)
|
35
|
+
def_node_matcher :expect_block?, <<~PATTERN
|
36
|
+
(block #expect? (args) _body)
|
37
|
+
PATTERN
|
38
|
+
|
39
|
+
# @!method expectation_without_runner?(node)
|
40
|
+
def_node_matcher :expectation_without_runner?, <<~PATTERN
|
41
|
+
(send {#expect? #expect_block?} !#Runners.all ...)
|
42
|
+
PATTERN
|
43
|
+
|
44
|
+
def on_send(node)
|
45
|
+
node = node.parent if node.parent&.block_type?
|
46
|
+
|
47
|
+
expectation_without_runner?(node.parent) do
|
48
|
+
add_offense(node.parent.loc.selector)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -30,7 +30,7 @@ module RuboCop
|
|
30
30
|
|
31
31
|
def on_top_level_group(node)
|
32
32
|
top_level_example_groups =
|
33
|
-
top_level_groups.select
|
33
|
+
top_level_groups.select { |group| example_group?(group) }
|
34
34
|
|
35
35
|
return if top_level_example_groups.one?
|
36
36
|
return unless top_level_example_groups.first.equal?(node)
|
@@ -72,7 +72,7 @@ module RuboCop
|
|
72
72
|
MSG = 'Example has too many expectations [%<total>d/%<max>d].'
|
73
73
|
|
74
74
|
ANYTHING = ->(_node) { true }
|
75
|
-
|
75
|
+
TRUE_NODE = lambda(&:true_type?)
|
76
76
|
|
77
77
|
# @!method aggregate_failures?(node)
|
78
78
|
def_node_matcher :aggregate_failures?, <<~PATTERN
|
@@ -110,7 +110,7 @@ module RuboCop
|
|
110
110
|
node_with_aggregate_failures = find_aggregate_failures(example_node)
|
111
111
|
return false unless node_with_aggregate_failures
|
112
112
|
|
113
|
-
aggregate_failures?(node_with_aggregate_failures,
|
113
|
+
aggregate_failures?(node_with_aggregate_failures, TRUE_NODE)
|
114
114
|
end
|
115
115
|
|
116
116
|
def find_aggregate_failures(example_node)
|
@@ -108,10 +108,8 @@ module RuboCop
|
|
108
108
|
attr_reader :example_group_memoized_helpers
|
109
109
|
|
110
110
|
def all_helpers(node)
|
111
|
-
|
112
|
-
|
113
|
-
*node.each_ancestor(:block).flat_map(&method(:helpers))
|
114
|
-
]
|
111
|
+
helpers(node) +
|
112
|
+
node.each_ancestor(:block).flat_map { |ancestor| helpers(ancestor) }
|
115
113
|
end
|
116
114
|
|
117
115
|
def helpers(node)
|
@@ -107,8 +107,11 @@ module RuboCop
|
|
107
107
|
private
|
108
108
|
|
109
109
|
def ignored_shared_example?(node)
|
110
|
-
cop_config['IgnoreSharedExamples']
|
111
|
-
|
110
|
+
return false unless cop_config['IgnoreSharedExamples']
|
111
|
+
|
112
|
+
node.each_ancestor(:block).any? do |ancestor|
|
113
|
+
shared_example?(ancestor)
|
114
|
+
end
|
112
115
|
end
|
113
116
|
|
114
117
|
def check_explicit_subject(node)
|
@@ -76,7 +76,7 @@ module RuboCop
|
|
76
76
|
return if first_occurrence == occurrence || !first_occurrence.body
|
77
77
|
|
78
78
|
corrector.insert_after(first_occurrence.body,
|
79
|
-
"\n#{occurrence.body
|
79
|
+
"\n#{occurrence.body&.source}")
|
80
80
|
corrector.remove(range_by_whole_lines(occurrence.source_range,
|
81
81
|
include_final_newline: true))
|
82
82
|
end
|
@@ -136,7 +136,9 @@ module RuboCop
|
|
136
136
|
RESTRICT_ON_SEND = %i[to].freeze
|
137
137
|
|
138
138
|
def on_send(node)
|
139
|
-
expectation(node,
|
139
|
+
expectation(node) do |expectation, method_name, matcher|
|
140
|
+
on_expectation(expectation, method_name, matcher)
|
141
|
+
end
|
140
142
|
end
|
141
143
|
|
142
144
|
private
|
@@ -113,8 +113,8 @@ module RuboCop
|
|
113
113
|
PATTERN
|
114
114
|
|
115
115
|
def on_top_level_group(node)
|
116
|
-
@explicit_subjects = find_all_explicit(node
|
117
|
-
@subject_overrides = find_all_explicit(node
|
116
|
+
@explicit_subjects = find_all_explicit(node) { |n| subject?(n) }
|
117
|
+
@subject_overrides = find_all_explicit(node) { |n| let?(n) }
|
118
118
|
|
119
119
|
find_subject_expectations(node) do |stub|
|
120
120
|
add_offense(stub)
|
@@ -1,29 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative 'rspec/capybara/current_path_expectation'
|
4
|
-
require_relative 'rspec/capybara/feature_methods'
|
5
|
-
require_relative 'rspec/capybara/match_style'
|
6
|
-
require_relative 'rspec/capybara/negation_matcher'
|
7
|
-
require_relative 'rspec/capybara/specific_actions'
|
8
|
-
require_relative 'rspec/capybara/specific_finders'
|
9
|
-
require_relative 'rspec/capybara/specific_matcher'
|
10
|
-
require_relative 'rspec/capybara/visibility_matcher'
|
11
|
-
|
12
|
-
require_relative 'rspec/factory_bot/attribute_defined_statically'
|
13
|
-
require_relative 'rspec/factory_bot/consistent_parentheses_style'
|
14
|
-
require_relative 'rspec/factory_bot/create_list'
|
15
|
-
require_relative 'rspec/factory_bot/factory_class_name'
|
16
|
-
require_relative 'rspec/factory_bot/factory_name_style'
|
17
|
-
require_relative 'rspec/factory_bot/syntax_methods'
|
18
|
-
|
19
|
-
require_relative 'rspec/rails/avoid_setup_hook'
|
20
|
-
require_relative 'rspec/rails/have_http_status'
|
21
|
-
require_relative 'rspec/rails/http_status'
|
22
|
-
require_relative 'rspec/rails/inferred_spec_type'
|
23
|
-
require_relative 'rspec/rails/minitest_assertions'
|
24
|
-
require_relative 'rspec/rails/negation_be_valid'
|
25
|
-
require_relative 'rspec/rails/travel_around'
|
26
|
-
|
27
3
|
require_relative 'rspec/align_left_let_brace'
|
28
4
|
require_relative 'rspec/align_right_let_brace'
|
29
5
|
require_relative 'rspec/any_instance'
|
@@ -63,8 +39,8 @@ require_relative 'rspec/excessive_docstring_spacing'
|
|
63
39
|
require_relative 'rspec/expect_actual'
|
64
40
|
require_relative 'rspec/expect_change'
|
65
41
|
require_relative 'rspec/expect_in_hook'
|
42
|
+
require_relative 'rspec/expect_in_let'
|
66
43
|
require_relative 'rspec/expect_output'
|
67
|
-
require_relative 'rspec/file_path'
|
68
44
|
require_relative 'rspec/focus'
|
69
45
|
require_relative 'rspec/hook_argument'
|
70
46
|
require_relative 'rspec/hooks_before_examples'
|
@@ -88,6 +64,7 @@ require_relative 'rspec/message_expectation'
|
|
88
64
|
require_relative 'rspec/message_spies'
|
89
65
|
require_relative 'rspec/metadata_style'
|
90
66
|
require_relative 'rspec/missing_example_group_argument'
|
67
|
+
require_relative 'rspec/missing_expectation_target_method'
|
91
68
|
require_relative 'rspec/multiple_describes'
|
92
69
|
require_relative 'rspec/multiple_expectations'
|
93
70
|
require_relative 'rspec/multiple_memoized_helpers'
|
@@ -7,29 +7,7 @@ module RuboCop
|
|
7
7
|
# Builds a YAML config file from two config hashes
|
8
8
|
class ConfigFormatter
|
9
9
|
EXTENSION_ROOT_DEPARTMENT = %r{^(RSpec/)}.freeze
|
10
|
-
SUBDEPARTMENTS =
|
11
|
-
EXTRACTED_COPS = %(
|
12
|
-
RSpec/Capybara/CurrentPathExpectation
|
13
|
-
RSpec/Capybara/MatchStyle
|
14
|
-
RSpec/Capybara/NegationMatcher
|
15
|
-
RSpec/Capybara/SpecificActions
|
16
|
-
RSpec/Capybara/SpecificFinders
|
17
|
-
RSpec/Capybara/SpecificMatcher
|
18
|
-
RSpec/Capybara/VisibilityMatcher
|
19
|
-
RSpec/FactoryBot/AttributeDefinedStatically
|
20
|
-
RSpec/FactoryBot/ConsistentParenthesesStyle
|
21
|
-
RSpec/FactoryBot/CreateList
|
22
|
-
RSpec/FactoryBot/FactoryClassName
|
23
|
-
RSpec/FactoryBot/FactoryNameStyle
|
24
|
-
RSpec/FactoryBot/SyntaxMethods
|
25
|
-
RSpec/Rails/AvoidSetupHook
|
26
|
-
RSpec/Rails/HaveHttpStatus
|
27
|
-
RSpec/Rails/HttpStatus
|
28
|
-
RSpec/Rails/InferredSpecType
|
29
|
-
RSpec/Rails/MinitestAssertions
|
30
|
-
RSpec/Rails/NegationBeValid
|
31
|
-
RSpec/Rails/TravelAround
|
32
|
-
)
|
10
|
+
SUBDEPARTMENTS = [].freeze
|
33
11
|
AMENDMENTS = %(Metrics/BlockLength)
|
34
12
|
COP_DOC_BASE_URL = 'https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/'
|
35
13
|
|
@@ -51,7 +29,6 @@ module RuboCop
|
|
51
29
|
def unified_config
|
52
30
|
cops.each_with_object(config.dup) do |cop, unified|
|
53
31
|
next if SUBDEPARTMENTS.include?(cop) || AMENDMENTS.include?(cop)
|
54
|
-
next if EXTRACTED_COPS.include?(cop)
|
55
32
|
|
56
33
|
replace_nil(unified[cop])
|
57
34
|
unified[cop].merge!(descriptions.fetch(cop))
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module RSpec
|
5
|
+
module Cop
|
6
|
+
# Source and spec generator for new cops
|
7
|
+
#
|
8
|
+
# This generator will take a cop name and generate a source file
|
9
|
+
# and spec file when given a valid qualified cop name.
|
10
|
+
# @api private
|
11
|
+
class Generator < RuboCop::Cop::Generator
|
12
|
+
def todo
|
13
|
+
<<~TODO
|
14
|
+
Do 4 steps:
|
15
|
+
1. Modify the description of #{badge} in config/default.yml
|
16
|
+
2. Implement your new cop in the generated file!
|
17
|
+
3. Add an entry about new cop to CHANGELOG.md
|
18
|
+
4. Commit your new cop with a message such as
|
19
|
+
e.g. "Add new `#{badge}` cop"
|
20
|
+
TODO
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -21,7 +21,7 @@ RSpec.shared_context 'with default RSpec/Language config' do
|
|
21
21
|
when Array
|
22
22
|
object.map { |item| deep_dup(item) }
|
23
23
|
when Hash
|
24
|
-
object.transform_values(
|
24
|
+
object.transform_values { |value| deep_dup(value) }
|
25
25
|
else
|
26
26
|
object # only collections undergo modifications and need duping
|
27
27
|
end
|
data/lib/rubocop-rspec.rb
CHANGED
@@ -4,19 +4,14 @@ require 'pathname'
|
|
4
4
|
require 'yaml'
|
5
5
|
|
6
6
|
require 'rubocop'
|
7
|
-
require 'rubocop-capybara'
|
8
|
-
require 'rubocop-factory_bot'
|
9
7
|
|
10
8
|
require_relative 'rubocop/rspec'
|
11
9
|
require_relative 'rubocop/rspec/inject'
|
12
|
-
require_relative 'rubocop/rspec/language
|
10
|
+
require_relative 'rubocop/rspec/language'
|
13
11
|
require_relative 'rubocop/rspec/node'
|
14
12
|
require_relative 'rubocop/rspec/version'
|
15
13
|
require_relative 'rubocop/rspec/wording'
|
16
14
|
|
17
|
-
# Dependent on `RuboCop::RSpec::Language::NodePattern`.
|
18
|
-
require_relative 'rubocop/rspec/language'
|
19
|
-
|
20
15
|
require_relative 'rubocop/cop/rspec/mixin/file_help'
|
21
16
|
require_relative 'rubocop/cop/rspec/mixin/final_end_location'
|
22
17
|
require_relative 'rubocop/cop/rspec/mixin/inside_example_group'
|
@@ -39,9 +34,6 @@ require_relative 'rubocop/rspec/example'
|
|
39
34
|
require_relative 'rubocop/rspec/example_group'
|
40
35
|
require_relative 'rubocop/rspec/hook'
|
41
36
|
|
42
|
-
# need after `require 'rubocop/cop/rspec/base'``
|
43
|
-
require 'rubocop-rspec_rails'
|
44
|
-
|
45
37
|
RuboCop::RSpec::Inject.defaults!
|
46
38
|
|
47
39
|
require_relative 'rubocop/cop/rspec_cops'
|
@@ -58,12 +50,4 @@ RuboCop::Cop::Layout::ExtraSpacing.singleton_class.prepend(
|
|
58
50
|
end
|
59
51
|
)
|
60
52
|
|
61
|
-
RuboCop::Cop::Style::TrailingCommaInArguments.singleton_class.prepend(
|
62
|
-
Module.new do
|
63
|
-
def autocorrect_incompatible_with
|
64
|
-
super.push(RuboCop::Cop::RSpec::Capybara::CurrentPathExpectation)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
)
|
68
|
-
|
69
53
|
RuboCop::AST::Node.include(RuboCop::RSpec::Node)
|
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:
|
4
|
+
version: 3.0.1
|
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: 2024-
|
13
|
+
date: 2024-06-11 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rubocop
|
@@ -18,56 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '1.
|
21
|
+
version: '1.61'
|
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.
|
29
|
-
- !ruby/object:Gem::Dependency
|
30
|
-
name: rubocop-capybara
|
31
|
-
requirement: !ruby/object:Gem::Requirement
|
32
|
-
requirements:
|
33
|
-
- - "~>"
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version: '2.17'
|
36
|
-
type: :runtime
|
37
|
-
prerelease: false
|
38
|
-
version_requirements: !ruby/object:Gem::Requirement
|
39
|
-
requirements:
|
40
|
-
- - "~>"
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: '2.17'
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: rubocop-factory_bot
|
45
|
-
requirement: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '2.22'
|
50
|
-
type: :runtime
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '2.22'
|
57
|
-
- !ruby/object:Gem::Dependency
|
58
|
-
name: rubocop-rspec_rails
|
59
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - "~>"
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '2.28'
|
64
|
-
type: :runtime
|
65
|
-
prerelease: false
|
66
|
-
version_requirements: !ruby/object:Gem::Requirement
|
67
|
-
requirements:
|
68
|
-
- - "~>"
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: '2.28'
|
28
|
+
version: '1.61'
|
71
29
|
description: |
|
72
30
|
Code style checking for RSpec files.
|
73
31
|
A plugin for the RuboCop code style enforcing & linting tool.
|
@@ -99,14 +57,6 @@ files:
|
|
99
57
|
- lib/rubocop/cop/rspec/be_eql.rb
|
100
58
|
- lib/rubocop/cop/rspec/be_nil.rb
|
101
59
|
- lib/rubocop/cop/rspec/before_after_all.rb
|
102
|
-
- lib/rubocop/cop/rspec/capybara/current_path_expectation.rb
|
103
|
-
- lib/rubocop/cop/rspec/capybara/feature_methods.rb
|
104
|
-
- lib/rubocop/cop/rspec/capybara/match_style.rb
|
105
|
-
- lib/rubocop/cop/rspec/capybara/negation_matcher.rb
|
106
|
-
- lib/rubocop/cop/rspec/capybara/specific_actions.rb
|
107
|
-
- lib/rubocop/cop/rspec/capybara/specific_finders.rb
|
108
|
-
- lib/rubocop/cop/rspec/capybara/specific_matcher.rb
|
109
|
-
- lib/rubocop/cop/rspec/capybara/visibility_matcher.rb
|
110
60
|
- lib/rubocop/cop/rspec/change_by_zero.rb
|
111
61
|
- lib/rubocop/cop/rspec/class_check.rb
|
112
62
|
- lib/rubocop/cop/rspec/contain_exactly.rb
|
@@ -136,14 +86,8 @@ files:
|
|
136
86
|
- lib/rubocop/cop/rspec/expect_actual.rb
|
137
87
|
- lib/rubocop/cop/rspec/expect_change.rb
|
138
88
|
- lib/rubocop/cop/rspec/expect_in_hook.rb
|
89
|
+
- lib/rubocop/cop/rspec/expect_in_let.rb
|
139
90
|
- lib/rubocop/cop/rspec/expect_output.rb
|
140
|
-
- lib/rubocop/cop/rspec/factory_bot/attribute_defined_statically.rb
|
141
|
-
- lib/rubocop/cop/rspec/factory_bot/consistent_parentheses_style.rb
|
142
|
-
- lib/rubocop/cop/rspec/factory_bot/create_list.rb
|
143
|
-
- lib/rubocop/cop/rspec/factory_bot/factory_class_name.rb
|
144
|
-
- lib/rubocop/cop/rspec/factory_bot/factory_name_style.rb
|
145
|
-
- lib/rubocop/cop/rspec/factory_bot/syntax_methods.rb
|
146
|
-
- lib/rubocop/cop/rspec/file_path.rb
|
147
91
|
- lib/rubocop/cop/rspec/focus.rb
|
148
92
|
- lib/rubocop/cop/rspec/hook_argument.rb
|
149
93
|
- lib/rubocop/cop/rspec/hooks_before_examples.rb
|
@@ -167,6 +111,7 @@ files:
|
|
167
111
|
- lib/rubocop/cop/rspec/message_spies.rb
|
168
112
|
- lib/rubocop/cop/rspec/metadata_style.rb
|
169
113
|
- lib/rubocop/cop/rspec/missing_example_group_argument.rb
|
114
|
+
- lib/rubocop/cop/rspec/missing_expectation_target_method.rb
|
170
115
|
- lib/rubocop/cop/rspec/mixin/comments_help.rb
|
171
116
|
- lib/rubocop/cop/rspec/mixin/empty_line_separation.rb
|
172
117
|
- lib/rubocop/cop/rspec/mixin/file_help.rb
|
@@ -190,13 +135,6 @@ files:
|
|
190
135
|
- lib/rubocop/cop/rspec/pending.rb
|
191
136
|
- lib/rubocop/cop/rspec/pending_without_reason.rb
|
192
137
|
- lib/rubocop/cop/rspec/predicate_matcher.rb
|
193
|
-
- lib/rubocop/cop/rspec/rails/avoid_setup_hook.rb
|
194
|
-
- lib/rubocop/cop/rspec/rails/have_http_status.rb
|
195
|
-
- lib/rubocop/cop/rspec/rails/http_status.rb
|
196
|
-
- lib/rubocop/cop/rspec/rails/inferred_spec_type.rb
|
197
|
-
- lib/rubocop/cop/rspec/rails/minitest_assertions.rb
|
198
|
-
- lib/rubocop/cop/rspec/rails/negation_be_valid.rb
|
199
|
-
- lib/rubocop/cop/rspec/rails/travel_around.rb
|
200
138
|
- lib/rubocop/cop/rspec/receive_counts.rb
|
201
139
|
- lib/rubocop/cop/rspec/receive_messages.rb
|
202
140
|
- lib/rubocop/cop/rspec/receive_never.rb
|
@@ -235,6 +173,7 @@ files:
|
|
235
173
|
- lib/rubocop/rspec/align_let_brace.rb
|
236
174
|
- lib/rubocop/rspec/concept.rb
|
237
175
|
- lib/rubocop/rspec/config_formatter.rb
|
176
|
+
- lib/rubocop/rspec/cop/generator.rb
|
238
177
|
- lib/rubocop/rspec/corrector/move_node.rb
|
239
178
|
- lib/rubocop/rspec/description_extractor.rb
|
240
179
|
- lib/rubocop/rspec/example.rb
|
@@ -242,7 +181,6 @@ files:
|
|
242
181
|
- lib/rubocop/rspec/hook.rb
|
243
182
|
- lib/rubocop/rspec/inject.rb
|
244
183
|
- lib/rubocop/rspec/language.rb
|
245
|
-
- lib/rubocop/rspec/language/node_pattern.rb
|
246
184
|
- lib/rubocop/rspec/node.rb
|
247
185
|
- lib/rubocop/rspec/shared_contexts/default_rspec_language_config_context.rb
|
248
186
|
- lib/rubocop/rspec/version.rb
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RuboCop
|
4
|
-
module Cop
|
5
|
-
module RSpec
|
6
|
-
module Capybara
|
7
|
-
# @!parse
|
8
|
-
# # Checks that no expectations are set on Capybara's `current_path`.
|
9
|
-
# #
|
10
|
-
# # The
|
11
|
-
# # https://www.rubydoc.info/github/teamcapybara/capybara/master/Capybara/RSpecMatchers#have_current_path-instance_method[`have_current_path` matcher]
|
12
|
-
# # should be used on `page` to set expectations on Capybara's
|
13
|
-
# # current path, since it uses
|
14
|
-
# # https://github.com/teamcapybara/capybara/blob/master/README.md#asynchronous-javascript-ajax-and-friends[Capybara's waiting functionality]
|
15
|
-
# # which ensures that preceding actions (like `click_link`) have
|
16
|
-
# # completed.
|
17
|
-
# #
|
18
|
-
# # This cop does not support autocorrection in some cases.
|
19
|
-
# #
|
20
|
-
# # @example
|
21
|
-
# # # bad
|
22
|
-
# # expect(current_path).to eq('/callback')
|
23
|
-
# #
|
24
|
-
# # # good
|
25
|
-
# # expect(page).to have_current_path('/callback')
|
26
|
-
# #
|
27
|
-
# # # bad (does not support autocorrection)
|
28
|
-
# # expect(page.current_path).to match(variable)
|
29
|
-
# #
|
30
|
-
# # # good
|
31
|
-
# # expect(page).to have_current_path('/callback')
|
32
|
-
# #
|
33
|
-
# class CurrentPathExpectation < ::RuboCop::Cop::Base; end
|
34
|
-
CurrentPathExpectation =
|
35
|
-
::RuboCop::Cop::Capybara::CurrentPathExpectation
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|