rubocop-rspec 3.0.3 → 3.0.4

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: cc86eb0b71fda4e28260323fd53987730be73074de0011d50c43429f8de531e0
4
- data.tar.gz: 2b65f66de5fb68f06f752227a5c2376a4680a1984b5f21880b35325031160d24
3
+ metadata.gz: 169d3c16af254654f25f5b2d91abbee972be45feaa9b9103c54c00ce6592e41f
4
+ data.tar.gz: 140cfd9fe9b060eaaf697aa3eb7e94667ea089635cf2910047c1c63c90c55d76
5
5
  SHA512:
6
- metadata.gz: 835a6f93ad56ee749027bfcfa9f717a6c92ec5ab3fbbd2c0e47a5ddcad89de0f80381d06635e82d7c6c55f7d22d0b3a39dd514e02ae5dc3b840e5023070485da
7
- data.tar.gz: '093d0cb926c5e3c5d2f0aaab4b56f2e6855dca2dd40200590cb4629dbd448450bca32c0c3c7e40102518f92b30574481f6a06c69e738e776bb5ca268be2649ce'
6
+ metadata.gz: ecb48dd3947d2e830c205bf170ba47a9d81bafa685ecfafcbfbd23baa7dc9bee1cdb0002d9de44f8fd3fd3f9249187c4764676259f465f5bb2d0b9b5b3ea38f9
7
+ data.tar.gz: 4d63767133ef37bebba948f952b120cb4ef95b891ecbfca78cf0450f9df8e0f712a10a272eb7e6b477869d0c50323926b9791f7afdc8c64df18f8ba03e2f5359
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Master (Unreleased)
4
4
 
5
+ ## 3.0.4 (2024-08-05)
6
+
7
+ - Fix false-negative for `UnspecifiedException` when matcher is chained. ([@r7kamura])
8
+
5
9
  ## 3.0.3 (2024-07-12)
6
10
 
7
11
  - Add support for Unicode RIGHT SINGLE QUOTATION MARK in `RSpec/ExampleWording`. ([@jdufresne])
@@ -32,34 +32,39 @@ module RuboCop
32
32
  #
33
33
  class UnspecifiedException < Base
34
34
  MSG = 'Specify the exception being captured'
35
- RESTRICT_ON_SEND = %i[to].freeze
36
35
 
37
- # @!method empty_raise_error_or_exception(node)
38
- def_node_matcher :empty_raise_error_or_exception, <<~PATTERN
39
- (send
40
- (block
41
- (send nil? :expect) ...)
42
- :to
43
- (send nil? {:raise_error :raise_exception})
44
- )
36
+ RESTRICT_ON_SEND = %i[
37
+ raise_exception
38
+ raise_error
39
+ ].freeze
40
+
41
+ # @!method expect_to?(node)
42
+ def_node_matcher :expect_to?, <<~PATTERN
43
+ (send (block (send nil? :expect) ...) :to ...)
45
44
  PATTERN
46
45
 
47
46
  def on_send(node)
48
47
  return unless empty_exception_matcher?(node)
49
48
 
50
- add_offense(node.children.last)
49
+ add_offense(node)
51
50
  end
52
51
 
53
52
  private
54
53
 
55
54
  def empty_exception_matcher?(node)
56
- empty_raise_error_or_exception(node) && !block_with_args?(node.parent)
57
- end
55
+ return false if node.arguments? || node.block_literal?
58
56
 
59
- def block_with_args?(node)
60
- return false unless node&.block_type?
57
+ expect_to = find_expect_to(node)
58
+ return false unless expect_to
59
+ return false if expect_to.block_node&.arguments?
60
+
61
+ true
62
+ end
61
63
 
62
- node.arguments?
64
+ def find_expect_to(node)
65
+ node.each_ancestor(:send).find do |ancestor|
66
+ expect_to?(ancestor)
67
+ end
63
68
  end
64
69
  end
65
70
  end
@@ -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 = '3.0.3'
7
+ STRING = '3.0.4'
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: 3.0.3
4
+ version: 3.0.4
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-07-12 00:00:00.000000000 Z
13
+ date: 2024-08-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rubocop