rubocop-rspec 2.29.2 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|