rubocop-rspec 2.0.0.pre → 2.0.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 +12 -2
- data/README.md +4 -0
- data/config/default.yml +100 -18
- data/lib/rubocop-rspec.rb +7 -8
- data/lib/rubocop/cop/rspec/align_left_let_brace.rb +7 -3
- data/lib/rubocop/cop/rspec/align_right_let_brace.rb +7 -3
- data/lib/rubocop/cop/rspec/base.rb +6 -55
- data/lib/rubocop/cop/rspec/be.rb +1 -1
- data/lib/rubocop/cop/rspec/capybara/current_path_expectation.rb +2 -2
- data/lib/rubocop/cop/rspec/capybara/feature_methods.rb +3 -2
- data/lib/rubocop/cop/rspec/describe_class.rb +1 -1
- data/lib/rubocop/cop/rspec/describe_method.rb +1 -1
- data/lib/rubocop/cop/rspec/described_class.rb +1 -2
- data/lib/rubocop/cop/rspec/described_class_module_wrapping.rb +1 -2
- data/lib/rubocop/cop/rspec/dialect.rb +1 -1
- data/lib/rubocop/cop/rspec/empty_example_group.rb +6 -45
- data/lib/rubocop/cop/rspec/empty_hook.rb +1 -1
- data/lib/rubocop/cop/rspec/empty_line_after_example.rb +1 -1
- data/lib/rubocop/cop/rspec/empty_line_after_example_group.rb +1 -1
- data/lib/rubocop/cop/rspec/empty_line_after_final_let.rb +1 -1
- data/lib/rubocop/cop/rspec/empty_line_after_hook.rb +1 -1
- data/lib/rubocop/cop/rspec/empty_line_after_subject.rb +2 -2
- 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/file_path.rb +1 -1
- data/lib/rubocop/cop/rspec/focus.rb +13 -7
- data/lib/rubocop/cop/rspec/hook_argument.rb +2 -4
- data/lib/rubocop/cop/rspec/hooks_before_examples.rb +2 -2
- data/lib/rubocop/cop/rspec/implicit_expect.rb +1 -1
- data/lib/rubocop/cop/rspec/instance_variable.rb +1 -1
- data/lib/rubocop/cop/rspec/let_before_examples.rb +2 -2
- data/lib/rubocop/cop/rspec/let_setup.rb +7 -4
- data/lib/rubocop/cop/rspec/message_spies.rb +1 -1
- data/lib/rubocop/cop/rspec/mixin/empty_line_separation.rb +51 -0
- data/lib/rubocop/cop/rspec/mixin/final_end_location.rb +19 -0
- data/lib/rubocop/cop/rspec/mixin/top_level_group.rb +54 -0
- data/lib/rubocop/cop/rspec/mixin/variable.rb +20 -0
- data/lib/rubocop/cop/rspec/multiple_describes.rb +1 -1
- data/lib/rubocop/cop/rspec/multiple_expectations.rb +1 -1
- data/lib/rubocop/cop/rspec/multiple_memoized_helpers.rb +3 -1
- data/lib/rubocop/cop/rspec/named_subject.rb +8 -12
- data/lib/rubocop/cop/rspec/nested_groups.rb +1 -1
- data/lib/rubocop/cop/rspec/overwriting_setup.rb +2 -1
- data/lib/rubocop/cop/rspec/pending.rb +13 -5
- data/lib/rubocop/cop/rspec/predicate_matcher.rb +3 -3
- data/lib/rubocop/cop/rspec/repeated_include_example.rb +3 -2
- data/lib/rubocop/cop/rspec/shared_context.rb +16 -6
- data/lib/rubocop/cop/rspec/shared_examples.rb +3 -1
- data/lib/rubocop/cop/rspec/stubbed_mock.rb +1 -1
- data/lib/rubocop/cop/rspec/subject_stub.rb +2 -2
- data/lib/rubocop/cop/rspec/variable_definition.rb +1 -1
- data/lib/rubocop/cop/rspec/variable_name.rb +1 -1
- data/lib/rubocop/cop/rspec_cops.rb +0 -1
- data/lib/rubocop/rspec/align_let_brace.rb +1 -1
- data/lib/rubocop/rspec/concept.rb +2 -2
- data/lib/rubocop/rspec/config_formatter.rb +3 -3
- data/lib/rubocop/rspec/corrector/move_node.rb +1 -1
- data/lib/rubocop/rspec/example_group.rb +15 -5
- data/lib/rubocop/rspec/hook.rb +1 -1
- data/lib/rubocop/rspec/inject.rb +4 -2
- data/lib/rubocop/rspec/language.rb +143 -109
- data/lib/rubocop/rspec/language/node_pattern.rb +7 -24
- data/lib/rubocop/rspec/version.rb +1 -1
- metadata +22 -12
- data/lib/rubocop/cop/rspec/cop.rb +0 -10
- data/lib/rubocop/cop/rspec/invalid_predicate_matcher.rb +0 -41
- data/lib/rubocop/rspec.rb +0 -12
- data/lib/rubocop/rspec/empty_line_separation.rb +0 -48
- data/lib/rubocop/rspec/final_end_location.rb +0 -17
- data/lib/rubocop/rspec/top_level_describe.rb +0 -52
- data/lib/rubocop/rspec/top_level_group.rb +0 -57
- data/lib/rubocop/rspec/variable.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53f24b40715eb1f00efa9978b77383037e8c9d61d13c23b068928b05043430ca
|
4
|
+
data.tar.gz: 2d295003c7eefe76dfc7ca0f29711313b8b18b9c8579ce4464a47b47f412b54e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15221270a01b2a273708d0e0fd3c35b52a9e40f87f672b2c4b7b547c55df0415394c7d762e4255406553ab26e0432d9a610d38a36d9fa92dddec47209428c856
|
7
|
+
data.tar.gz: 7bbcba195d894aa24d2985444421042314dd018f931763164502ee511c857d3010c074e8206f0af777e99b13ac668d1a32e03a8aefaa8dc38b3714c95ceb9555
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,20 @@
|
|
1
|
-
#
|
1
|
+
# Changelog
|
2
2
|
|
3
3
|
## Master (Unreleased)
|
4
4
|
|
5
|
+
## 2.0.0 (2020-11-06)
|
6
|
+
|
7
|
+
* Remove deprecated class `::RuboCop::Cop::RSpec::Cop`. ([@bquorning][])
|
8
|
+
* Retire `RSpec/InvalidPredicateMatcher` cop. ([@pirj][])
|
9
|
+
* Remove the code responsible for filtering files to inspect. ([@pirj][])
|
10
|
+
* Make RSpec language elements configurable. ([@sl4vr][])
|
11
|
+
* Remove `CustomIncludeMethods` `RSpec/EmptyExampleGroup` option in favour of the new RSpec DSL configuration. ([@pirj][])
|
12
|
+
* Enabled pending cop (`RSpec/StubbedMock`). ([@pirj][])
|
13
|
+
|
5
14
|
## 2.0.0.pre (2020-10-22)
|
6
15
|
|
7
16
|
* Update RuboCop dependency to v1.0.0. ([@bquorning][])
|
8
|
-
*
|
17
|
+
* Change namespace of several cops (`Capybara/*` -> `RSpec/Capybara/*`, `FactoryBot/*` -> `RSpec/FactoryBot/*`, `Rails/*` -> `RSpec/Rails/*`). ([@pirj][], [@bquorning][])
|
9
18
|
|
10
19
|
## 1.44.1 (2020-10-20)
|
11
20
|
|
@@ -576,3 +585,4 @@ Compatibility release so users can upgrade RuboCop to 0.51.0. No new features.
|
|
576
585
|
[@koic]: https://github.com/koic
|
577
586
|
[@Rafix02]: https://github.com/Rafix02
|
578
587
|
[@PhilCoggins]: https://github.com/PhilCoggins
|
588
|
+
[@sl4vr]: https://github.com/sl4vr
|
data/README.md
CHANGED
@@ -23,6 +23,10 @@ or if you use bundler put this in your `Gemfile`
|
|
23
23
|
gem 'rubocop-rspec', require: false
|
24
24
|
```
|
25
25
|
|
26
|
+
### Upgrading to RuboCop RSpec v2.x
|
27
|
+
|
28
|
+
Read all the details in our [Upgrade to Version 2.x](https://docs.rubocop.org/rubocop-rspec/2.0/upgrade_to_version_2.html) document.
|
29
|
+
|
26
30
|
## Usage
|
27
31
|
|
28
32
|
You need to tell RuboCop to load the RSpec extension. There are three
|
data/config/default.yml
CHANGED
@@ -1,14 +1,85 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
RSpec:
|
3
|
+
Include:
|
4
|
+
- "**/*_spec.rb"
|
5
|
+
- "**/spec/**/*"
|
6
|
+
Language:
|
7
|
+
ExampleGroups:
|
8
|
+
Regular:
|
9
|
+
- describe
|
10
|
+
- context
|
11
|
+
- feature
|
12
|
+
- example_group
|
13
|
+
Skipped:
|
14
|
+
- xdescribe
|
15
|
+
- xcontext
|
16
|
+
- xfeature
|
17
|
+
Focused:
|
18
|
+
- fdescribe
|
19
|
+
- fcontext
|
20
|
+
- ffeature
|
21
|
+
Examples:
|
22
|
+
Regular:
|
23
|
+
- it
|
24
|
+
- specify
|
25
|
+
- example
|
26
|
+
- scenario
|
27
|
+
- its
|
28
|
+
Focused:
|
29
|
+
- fit
|
30
|
+
- fspecify
|
31
|
+
- fexample
|
32
|
+
- fscenario
|
33
|
+
- focus
|
34
|
+
Skipped:
|
35
|
+
- xit
|
36
|
+
- xspecify
|
37
|
+
- xexample
|
38
|
+
- xscenario
|
39
|
+
- skip
|
40
|
+
Pending:
|
41
|
+
- pending
|
42
|
+
Expectations:
|
43
|
+
- expect
|
44
|
+
- is_expected
|
45
|
+
- expect_any_instance_of
|
46
|
+
Helpers:
|
47
|
+
- let
|
48
|
+
- let!
|
49
|
+
Hooks:
|
50
|
+
- prepend_before
|
51
|
+
- before
|
52
|
+
- append_before
|
53
|
+
- around
|
54
|
+
- prepend_after
|
55
|
+
- after
|
56
|
+
- append_after
|
57
|
+
HookScopes:
|
58
|
+
- each
|
59
|
+
- example
|
60
|
+
- context
|
61
|
+
- all
|
62
|
+
- suite
|
63
|
+
Includes:
|
64
|
+
Examples:
|
65
|
+
- it_behaves_like
|
66
|
+
- it_should_behave_like
|
67
|
+
- include_examples
|
68
|
+
Context:
|
69
|
+
- include_context
|
70
|
+
Runners:
|
71
|
+
- to
|
72
|
+
- to_not
|
73
|
+
- not_to
|
74
|
+
SharedGroups:
|
75
|
+
Examples:
|
76
|
+
- shared_examples
|
77
|
+
- shared_examples_for
|
78
|
+
Context:
|
79
|
+
- shared_context
|
80
|
+
Subjects:
|
81
|
+
- subject
|
82
|
+
- subject!
|
12
83
|
|
13
84
|
RSpec/AlignLeftLetBrace:
|
14
85
|
Description: Checks that left braces for adjacent single line lets are aligned.
|
@@ -136,8 +207,8 @@ RSpec/Dialect:
|
|
136
207
|
RSpec/EmptyExampleGroup:
|
137
208
|
Description: Checks if an example group does not include any tests.
|
138
209
|
Enabled: true
|
139
|
-
CustomIncludeMethods: []
|
140
210
|
VersionAdded: '1.7'
|
211
|
+
VersionChanged: '2.0'
|
141
212
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyExampleGroup
|
142
213
|
|
143
214
|
RSpec/EmptyHook:
|
@@ -241,6 +312,9 @@ RSpec/ExpectOutput:
|
|
241
312
|
RSpec/FilePath:
|
242
313
|
Description: Checks that spec file paths are consistent and well-formed.
|
243
314
|
Enabled: true
|
315
|
+
Include:
|
316
|
+
- "**/*_spec*rb*"
|
317
|
+
- "**/spec/**/*"
|
244
318
|
CustomTransform:
|
245
319
|
RuboCop: rubocop
|
246
320
|
RSpec: rspec
|
@@ -315,12 +389,6 @@ RSpec/InstanceVariable:
|
|
315
389
|
VersionChanged: '1.7'
|
316
390
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InstanceVariable
|
317
391
|
|
318
|
-
RSpec/InvalidPredicateMatcher:
|
319
|
-
Description: Checks invalid usage for predicate matcher.
|
320
|
-
Enabled: true
|
321
|
-
VersionAdded: '1.16'
|
322
|
-
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/InvalidPredicateMatcher
|
323
|
-
|
324
392
|
RSpec/ItBehavesLike:
|
325
393
|
Description: Checks that only one `it_behaves_like` style is used.
|
326
394
|
Enabled: true
|
@@ -561,7 +629,7 @@ RSpec/SingleArgumentMessageChain:
|
|
561
629
|
|
562
630
|
RSpec/StubbedMock:
|
563
631
|
Description: Checks that message expectations do not have a configured response.
|
564
|
-
Enabled:
|
632
|
+
Enabled: true
|
565
633
|
VersionAdded: '1.44'
|
566
634
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/StubbedMock
|
567
635
|
|
@@ -645,6 +713,10 @@ RSpec/Capybara/VisibilityMatcher:
|
|
645
713
|
RSpec/FactoryBot/AttributeDefinedStatically:
|
646
714
|
Description: Always declare attribute values as blocks.
|
647
715
|
Enabled: true
|
716
|
+
Include:
|
717
|
+
- spec/factories.rb
|
718
|
+
- spec/factories/**/*.rb
|
719
|
+
- features/support/factories/**/*.rb
|
648
720
|
VersionAdded: '1.28'
|
649
721
|
VersionChanged: '2.0'
|
650
722
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/AttributeDefinedStatically
|
@@ -652,6 +724,12 @@ RSpec/FactoryBot/AttributeDefinedStatically:
|
|
652
724
|
RSpec/FactoryBot/CreateList:
|
653
725
|
Description: Checks for create_list usage.
|
654
726
|
Enabled: true
|
727
|
+
Include:
|
728
|
+
- "**/*_spec.rb"
|
729
|
+
- "**/spec/**/*"
|
730
|
+
- spec/factories.rb
|
731
|
+
- spec/factories/**/*.rb
|
732
|
+
- features/support/factories/**/*.rb
|
655
733
|
EnforcedStyle: create_list
|
656
734
|
SupportedStyles:
|
657
735
|
- create_list
|
@@ -663,6 +741,10 @@ RSpec/FactoryBot/CreateList:
|
|
663
741
|
RSpec/FactoryBot/FactoryClassName:
|
664
742
|
Description: Use string value when setting the class attribute explicitly.
|
665
743
|
Enabled: true
|
744
|
+
Include:
|
745
|
+
- spec/factories.rb
|
746
|
+
- spec/factories/**/*.rb
|
747
|
+
- features/support/factories/**/*.rb
|
666
748
|
VersionAdded: '1.37'
|
667
749
|
VersionChanged: '2.0'
|
668
750
|
StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/FactoryClassName
|
data/lib/rubocop-rspec.rb
CHANGED
@@ -5,26 +5,25 @@ require 'yaml'
|
|
5
5
|
|
6
6
|
require 'rubocop'
|
7
7
|
|
8
|
-
require_relative 'rubocop/rspec'
|
9
8
|
require_relative 'rubocop/rspec/version'
|
10
9
|
require_relative 'rubocop/rspec/inject'
|
11
10
|
require_relative 'rubocop/rspec/node'
|
12
|
-
require_relative 'rubocop/rspec/top_level_describe'
|
13
11
|
require_relative 'rubocop/rspec/wording'
|
14
|
-
require_relative 'rubocop/rspec/language'
|
15
12
|
require_relative 'rubocop/rspec/language/node_pattern'
|
16
|
-
require_relative 'rubocop/rspec/
|
13
|
+
require_relative 'rubocop/rspec/language'
|
14
|
+
|
15
|
+
require_relative 'rubocop/cop/rspec/mixin/top_level_group'
|
16
|
+
require_relative 'rubocop/cop/rspec/mixin/variable'
|
17
|
+
require_relative 'rubocop/cop/rspec/mixin/final_end_location'
|
18
|
+
require_relative 'rubocop/cop/rspec/mixin/empty_line_separation'
|
19
|
+
|
17
20
|
require_relative 'rubocop/rspec/concept'
|
18
21
|
require_relative 'rubocop/rspec/example_group'
|
19
22
|
require_relative 'rubocop/rspec/example'
|
20
23
|
require_relative 'rubocop/rspec/hook'
|
21
|
-
require_relative 'rubocop/rspec/variable'
|
22
24
|
require_relative 'rubocop/cop/rspec/base'
|
23
|
-
require_relative 'rubocop/cop/rspec/cop'
|
24
25
|
require_relative 'rubocop/rspec/align_let_brace'
|
25
26
|
require_relative 'rubocop/rspec/factory_bot'
|
26
|
-
require_relative 'rubocop/rspec/final_end_location'
|
27
|
-
require_relative 'rubocop/rspec/empty_line_separation'
|
28
27
|
require_relative 'rubocop/rspec/corrector/move_node'
|
29
28
|
|
30
29
|
RuboCop::RSpec::Inject.defaults!
|
@@ -27,11 +27,9 @@ module RuboCop
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def on_new_investigation
|
30
|
+
super
|
30
31
|
return if processed_source.blank?
|
31
32
|
|
32
|
-
token_aligner =
|
33
|
-
RuboCop::RSpec::AlignLetBrace.new(processed_source.ast, :begin)
|
34
|
-
|
35
33
|
token_aligner.offending_tokens.each do |let|
|
36
34
|
add_offense(let.loc.begin) do |corrector|
|
37
35
|
corrector.insert_before(
|
@@ -40,6 +38,12 @@ module RuboCop
|
|
40
38
|
end
|
41
39
|
end
|
42
40
|
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def token_aligner
|
45
|
+
RuboCop::RSpec::AlignLetBrace.new(processed_source.ast, :begin)
|
46
|
+
end
|
43
47
|
end
|
44
48
|
end
|
45
49
|
end
|
@@ -27,11 +27,9 @@ module RuboCop
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def on_new_investigation
|
30
|
+
super
|
30
31
|
return if processed_source.blank?
|
31
32
|
|
32
|
-
token_aligner =
|
33
|
-
RuboCop::RSpec::AlignLetBrace.new(processed_source.ast, :end)
|
34
|
-
|
35
33
|
token_aligner.offending_tokens.each do |let|
|
36
34
|
add_offense(let.loc.end) do |corrector|
|
37
35
|
corrector.insert_before(
|
@@ -40,6 +38,12 @@ module RuboCop
|
|
40
38
|
end
|
41
39
|
end
|
42
40
|
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def token_aligner
|
45
|
+
RuboCop::RSpec::AlignLetBrace.new(processed_source.ast, :end)
|
46
|
+
end
|
43
47
|
end
|
44
48
|
end
|
45
49
|
end
|
@@ -4,30 +4,9 @@ module RuboCop
|
|
4
4
|
module Cop
|
5
5
|
module RSpec
|
6
6
|
# @abstract parent class to RSpec cops
|
7
|
-
#
|
8
|
-
# The criteria for whether rubocop-rspec analyzes a certain ruby file
|
9
|
-
# is configured via `AllCops/RSpec`. For example, if you want to
|
10
|
-
# customize your project to scan all files within a `test/` directory
|
11
|
-
# then you could add this to your configuration:
|
12
|
-
#
|
13
|
-
# @example configuring analyzed paths
|
14
|
-
# # .rubocop.yml
|
15
|
-
# # AllCops:
|
16
|
-
# # RSpec:
|
17
|
-
# # Patterns:
|
18
|
-
# # - '_test.rb$'
|
19
|
-
# # - '(?:^|/)test/'
|
20
7
|
class Base < ::RuboCop::Cop::Base
|
21
8
|
include RuboCop::RSpec::Language
|
22
|
-
|
23
|
-
|
24
|
-
DEFAULT_CONFIGURATION =
|
25
|
-
RuboCop::RSpec::CONFIG.fetch('AllCops').fetch('RSpec')
|
26
|
-
|
27
|
-
DEFAULT_PATTERN_RE = Regexp.union(
|
28
|
-
DEFAULT_CONFIGURATION.fetch('Patterns')
|
29
|
-
.map(&Regexp.public_method(:new))
|
30
|
-
)
|
9
|
+
extend RuboCop::RSpec::Language::NodePattern
|
31
10
|
|
32
11
|
exclude_from_registry
|
33
12
|
|
@@ -36,39 +15,11 @@ module RuboCop
|
|
36
15
|
RuboCop::Cop::Base.inherited(subclass)
|
37
16
|
end
|
38
17
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
def relevant_rubocop_rspec_file?(file)
|
46
|
-
rspec_pattern.match?(file)
|
47
|
-
end
|
48
|
-
|
49
|
-
def rspec_pattern
|
50
|
-
if rspec_pattern_config?
|
51
|
-
Regexp.union(rspec_pattern_config.map(&Regexp.public_method(:new)))
|
52
|
-
else
|
53
|
-
DEFAULT_PATTERN_RE
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def all_cops_config
|
58
|
-
config
|
59
|
-
.for_all_cops
|
60
|
-
end
|
61
|
-
|
62
|
-
def rspec_pattern_config?
|
63
|
-
return unless all_cops_config.key?('RSpec')
|
64
|
-
|
65
|
-
all_cops_config.fetch('RSpec').key?('Patterns')
|
66
|
-
end
|
67
|
-
|
68
|
-
def rspec_pattern_config
|
69
|
-
all_cops_config
|
70
|
-
.fetch('RSpec', DEFAULT_CONFIGURATION)
|
71
|
-
.fetch('Patterns')
|
18
|
+
# Set the config for dynamic DSL configuration-aware helpers
|
19
|
+
# that have no other means of accessing the configuration.
|
20
|
+
def on_new_investigation
|
21
|
+
super
|
22
|
+
RuboCop::RSpec::Language.config = config['RSpec']['Language']
|
72
23
|
end
|
73
24
|
end
|
74
25
|
end
|
data/lib/rubocop/cop/rspec/be.rb
CHANGED
@@ -37,13 +37,13 @@ module RuboCop
|
|
37
37
|
# Supported matchers: eq(...) / match(/regexp/) / match('regexp')
|
38
38
|
def_node_matcher :as_is_matcher, <<-PATTERN
|
39
39
|
(send
|
40
|
-
#expectation_set_on_current_path $#
|
40
|
+
#expectation_set_on_current_path $#Runners.all
|
41
41
|
${(send nil? :eq ...) (send nil? :match (regexp ...))})
|
42
42
|
PATTERN
|
43
43
|
|
44
44
|
def_node_matcher :regexp_str_matcher, <<-PATTERN
|
45
45
|
(send
|
46
|
-
#expectation_set_on_current_path $#
|
46
|
+
#expectation_set_on_current_path $#Runners.all
|
47
47
|
$(send nil? :match (str $_)))
|
48
48
|
PATTERN
|
49
49
|
|
@@ -55,8 +55,9 @@ module RuboCop
|
|
55
55
|
feature: :describe
|
56
56
|
}.freeze
|
57
57
|
|
58
|
-
def_node_matcher :capybara_speak,
|
59
|
-
|
58
|
+
def_node_matcher :capybara_speak, <<-PATTERN
|
59
|
+
{#{MAP.keys.map(&:inspect).join(' ')}}
|
60
|
+
PATTERN
|
60
61
|
|
61
62
|
def_node_matcher :spec?, <<-PATTERN
|
62
63
|
(block
|
@@ -35,7 +35,7 @@ module RuboCop
|
|
35
35
|
# describe "A feature example", type: :feature do
|
36
36
|
# end
|
37
37
|
class DescribeClass < Base
|
38
|
-
include
|
38
|
+
include TopLevelGroup
|
39
39
|
|
40
40
|
MSG = 'The first argument to describe should be '\
|
41
41
|
'the class or module being tested.'
|
@@ -17,7 +17,7 @@ module RuboCop
|
|
17
17
|
# describe MyClass, '.my_class_method' do
|
18
18
|
# end
|
19
19
|
class DescribeMethod < Base
|
20
|
-
include
|
20
|
+
include TopLevelGroup
|
21
21
|
|
22
22
|
MSG = 'The second argument to describe should be the method '\
|
23
23
|
"being tested. '#instance' or '.class'."
|
@@ -65,8 +65,7 @@ module RuboCop
|
|
65
65
|
(block (send (const nil? {:Class :Module :Struct}) :new ...) ...)
|
66
66
|
PATTERN
|
67
67
|
|
68
|
-
def_node_matcher :rspec_block?,
|
69
|
-
RuboCop::RSpec::Language::ALL.block_pattern
|
68
|
+
def_node_matcher :rspec_block?, block_pattern('#ALL.all')
|
70
69
|
|
71
70
|
def_node_matcher :scope_changing_syntax?, '{def class module}'
|
72
71
|
|