rubocop-rspec 2.29.2 → 2.31.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 +9 -0
- data/config/default.yml +24 -4
- data/lib/rubocop/cop/rspec/expect_in_let.rb +44 -0
- data/lib/rubocop/cop/rspec/multiple_expectations.rb +1 -1
- data/lib/rubocop/cop/rspec_cops.rb +1 -0
- data/lib/rubocop/rspec/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02d59aeeb5798d5e90e8c397e253429236f3a7e179112db482611d4f08fcea3e
|
4
|
+
data.tar.gz: 2374b303560842bb66b37d7e0020fcaa00d0ec60d83cb506376f82df8af3584d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d55127e8cb4d7370dce4b87139e6341e1838f5ddbb4f0571619b632ed61176a879c693f8366f5c6446bcc333f35059cd6382b71eac013f46b63f8d642b186d5c
|
7
|
+
data.tar.gz: 4036baa0cda4333da829fa39398434131bd74d93bd0e86cc3322919a7fe1a8d02288473dc087b0508284c3bb15f8496ab9d87e55b0cd9a9875cb513e8ebdea1e
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
|
3
3
|
## Master (Unreleased)
|
4
4
|
|
5
|
+
## 2.31.0 (2024-06-07)
|
6
|
+
|
7
|
+
- Support `AutoCorrect: contextual` option for LSP. ([@ydah])
|
8
|
+
|
9
|
+
## 2.30.0 (2024-06-03)
|
10
|
+
|
11
|
+
- Add new `RSpec/ExpectInLet` cop. ([@yasu551])
|
12
|
+
|
5
13
|
## 2.29.2 (2024-05-02)
|
6
14
|
|
7
15
|
- Fix beginless and endless range bug for RepeatedIncludeExample cop. ([@hasghari])
|
@@ -976,6 +984,7 @@ Compatibility release so users can upgrade RuboCop to 0.51.0. No new features.
|
|
976
984
|
[@twalpole]: https://github.com/twalpole
|
977
985
|
[@vzvu3k6k]: https://github.com/vzvu3k6k
|
978
986
|
[@walf443]: https://github.com/walf443
|
987
|
+
[@yasu551]: https://github.com/yasu551
|
979
988
|
[@ybiquitous]: https://github.com/ybiquitous
|
980
989
|
[@ydah]: https://github.com/ydah
|
981
990
|
[@yevhene]: https://github.com/yevhene
|
data/config/default.yml
CHANGED
@@ -147,7 +147,9 @@ RSpec/Be:
|
|
147
147
|
RSpec/BeEmpty:
|
148
148
|
Description: Prefer using `be_empty` when checking for an empty array.
|
149
149
|
Enabled: pending
|
150
|
+
AutoCorrect: contextual
|
150
151
|
VersionAdded: '2.20'
|
152
|
+
VersionChanged: '2.31'
|
151
153
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/BeEmpty
|
152
154
|
|
153
155
|
RSpec/BeEq:
|
@@ -311,15 +313,18 @@ RSpec/DuplicatedMetadata:
|
|
311
313
|
RSpec/EmptyExampleGroup:
|
312
314
|
Description: Checks if an example group does not include any tests.
|
313
315
|
Enabled: true
|
316
|
+
AutoCorrect: contextual
|
314
317
|
SafeAutoCorrect: false
|
315
318
|
VersionAdded: '1.7'
|
316
|
-
VersionChanged: '2.
|
319
|
+
VersionChanged: '2.31'
|
317
320
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyExampleGroup
|
318
321
|
|
319
322
|
RSpec/EmptyHook:
|
320
323
|
Description: Checks for empty before and after hooks.
|
321
324
|
Enabled: true
|
325
|
+
AutoCorrect: contextual
|
322
326
|
VersionAdded: '1.39'
|
327
|
+
VersionChanged: '2.31'
|
323
328
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyHook
|
324
329
|
|
325
330
|
RSpec/EmptyLineAfterExample:
|
@@ -363,7 +368,9 @@ RSpec/EmptyLineAfterSubject:
|
|
363
368
|
RSpec/EmptyMetadata:
|
364
369
|
Description: Avoid empty metadata hash.
|
365
370
|
Enabled: pending
|
371
|
+
AutoCorrect: contextual
|
366
372
|
VersionAdded: '2.24'
|
373
|
+
VersionChanged: '2.31'
|
367
374
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/EmptyMetadata
|
368
375
|
|
369
376
|
RSpec/EmptyOutput:
|
@@ -447,6 +454,12 @@ RSpec/ExpectInHook:
|
|
447
454
|
VersionAdded: '1.16'
|
448
455
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInHook
|
449
456
|
|
457
|
+
RSpec/ExpectInLet:
|
458
|
+
Description: Do not use `expect` in let.
|
459
|
+
Enabled: pending
|
460
|
+
VersionAdded: '2.30'
|
461
|
+
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectInLet
|
462
|
+
|
450
463
|
RSpec/ExpectOutput:
|
451
464
|
Description: Checks for opportunities to use `expect { ... }.to output`.
|
452
465
|
Enabled: true
|
@@ -471,8 +484,9 @@ RSpec/FilePath:
|
|
471
484
|
RSpec/Focus:
|
472
485
|
Description: Checks if examples are focused.
|
473
486
|
Enabled: true
|
487
|
+
AutoCorrect: contextual
|
474
488
|
VersionAdded: '1.5'
|
475
|
-
VersionChanged: '2.
|
489
|
+
VersionChanged: '2.31'
|
476
490
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Focus
|
477
491
|
|
478
492
|
RSpec/HookArgument:
|
@@ -490,7 +504,9 @@ RSpec/HookArgument:
|
|
490
504
|
RSpec/HooksBeforeExamples:
|
491
505
|
Description: Checks for before/around/after hooks that come after an example.
|
492
506
|
Enabled: true
|
507
|
+
AutoCorrect: contextual
|
493
508
|
VersionAdded: '1.29'
|
509
|
+
VersionChanged: '2.31'
|
494
510
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/HooksBeforeExamples
|
495
511
|
|
496
512
|
RSpec/IdenticalEqualityAssertion:
|
@@ -596,8 +612,9 @@ RSpec/LeakyConstantDeclaration:
|
|
596
612
|
RSpec/LetBeforeExamples:
|
597
613
|
Description: Checks for `let` definitions that come after an example.
|
598
614
|
Enabled: true
|
615
|
+
AutoCorrect: contextual
|
599
616
|
VersionAdded: '1.16'
|
600
|
-
VersionChanged: '
|
617
|
+
VersionChanged: '2.31'
|
601
618
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/LetBeforeExamples
|
602
619
|
|
603
620
|
RSpec/LetSetup:
|
@@ -847,14 +864,17 @@ RSpec/ReturnFromStub:
|
|
847
864
|
RSpec/ScatteredLet:
|
848
865
|
Description: Checks for let scattered across the example group.
|
849
866
|
Enabled: true
|
867
|
+
AutoCorrect: contextual
|
850
868
|
VersionAdded: '1.14'
|
851
|
-
VersionChanged: '
|
869
|
+
VersionChanged: '2.31'
|
852
870
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredLet
|
853
871
|
|
854
872
|
RSpec/ScatteredSetup:
|
855
873
|
Description: Checks for setup scattered across multiple hooks in an example group.
|
856
874
|
Enabled: true
|
875
|
+
AutoCorrect: contextual
|
857
876
|
VersionAdded: '1.10'
|
877
|
+
VersionChanged: '2.31'
|
858
878
|
Reference: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ScatteredSetup
|
859
879
|
|
860
880
|
RSpec/SharedContext:
|
@@ -0,0 +1,44 @@
|
|
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)
|
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
|
+
alias on_numblock on_block
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def message(expect)
|
39
|
+
format(MSG, expect: expect.method_name)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -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
|
-
TRUE =
|
75
|
+
TRUE = lambda(&:true_type?)
|
76
76
|
|
77
77
|
# @!method aggregate_failures?(node)
|
78
78
|
def_node_matcher :aggregate_failures?, <<~PATTERN
|
@@ -63,6 +63,7 @@ require_relative 'rspec/excessive_docstring_spacing'
|
|
63
63
|
require_relative 'rspec/expect_actual'
|
64
64
|
require_relative 'rspec/expect_change'
|
65
65
|
require_relative 'rspec/expect_in_hook'
|
66
|
+
require_relative 'rspec/expect_in_let'
|
66
67
|
require_relative 'rspec/expect_output'
|
67
68
|
require_relative 'rspec/file_path'
|
68
69
|
require_relative 'rspec/focus'
|
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.31.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: 2024-
|
13
|
+
date: 2024-06-07 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rubocop
|
@@ -136,6 +136,7 @@ files:
|
|
136
136
|
- lib/rubocop/cop/rspec/expect_actual.rb
|
137
137
|
- lib/rubocop/cop/rspec/expect_change.rb
|
138
138
|
- lib/rubocop/cop/rspec/expect_in_hook.rb
|
139
|
+
- lib/rubocop/cop/rspec/expect_in_let.rb
|
139
140
|
- lib/rubocop/cop/rspec/expect_output.rb
|
140
141
|
- lib/rubocop/cop/rspec/factory_bot/attribute_defined_statically.rb
|
141
142
|
- lib/rubocop/cop/rspec/factory_bot/consistent_parentheses_style.rb
|