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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f4865ebd50bfe7df9833f2c5321a46dcac8631087062605b7e077e6b633099a
4
- data.tar.gz: 4520e7bdaae0270de34922c53f08d23679b9ac66a89bad29a52485bcdc49432d
3
+ metadata.gz: 02d59aeeb5798d5e90e8c397e253429236f3a7e179112db482611d4f08fcea3e
4
+ data.tar.gz: 2374b303560842bb66b37d7e0020fcaa00d0ec60d83cb506376f82df8af3584d
5
5
  SHA512:
6
- metadata.gz: 202e33ab3927087a3e59917c1a73edc28f13054e668bbefeb5451799f373304b0a5d703e3a0564cf72df2f8afe86d0be1b5a1ffc06bfe2f145c4b2645474a653
7
- data.tar.gz: ad0cb220b35590ffc7911e149d9754af5185b83fe597a2212a4dca2927617f4269af80f19cfeabd147e2b06181c9ce37a44998822d9a3f2fd7c27395fca18b0d
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.13'
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.1'
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: '1.22'
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: '1.39'
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 = ->(node) { node.true_type? }
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'
@@ -4,7 +4,7 @@ module RuboCop
4
4
  module RSpec
5
5
  # Version information for the RSpec RuboCop plugin.
6
6
  module Version
7
- STRING = '2.29.2'
7
+ STRING = '2.31.0'
8
8
  end
9
9
  end
10
10
  end
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.29.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-05-02 00:00:00.000000000 Z
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