rubocop-minitest 0.34.3 → 0.34.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: afd3efb3693514e425f01041e37235e7e78fd0259689c6e638a8d567c0bd4692
4
- data.tar.gz: c6886e41faf35b0b801394e71b07c550359ff94bff8a074b8df5bd872db588f6
3
+ metadata.gz: cc9ea3b370ec30f86a9e1ddb422255552f643a605b6e744518afcfa1e6ae6de0
4
+ data.tar.gz: ba67151e3d30de7f5634ef62feb6663fb0109c69886bdf231417dea06a55ba99
5
5
  SHA512:
6
- metadata.gz: 35a275c7a0e6d17dab0a838ebe10f4a913d0d6fa854b6836129a35a8765d2f49d672a5cbb2dd1286fff3f71437eea297aa09e74539f618ff278c17359467da67
7
- data.tar.gz: 7db0be71cbcebc36bf79fd2002d773a608c78333436d4b01d5fda05255683fde98c845e0267ab4ba8a54c400df52c4a53c53eee0f4eda5649d9bf55acd1c77ef
6
+ metadata.gz: d7ab44585e54b9cd0cd85d8e36adfd9ba9f9a7b560c791e15af082691e391a38f313857f323eb897c831d277d73b67e13707cdb76db45bce8cf38286099d7640
7
+ data.tar.gz: d592eb50f633074ac727f0fb493d734ca70320ff8fb9441dfab46b45916a7d730a5e439486642755cc83797bacbdfaf85cbb6b6cc95415a491230f64e2645102
data/config/default.yml CHANGED
@@ -46,6 +46,7 @@ Minitest/AssertKindOf:
46
46
  StyleGuide: 'https://github.com/rubocop/minitest-style-guide#assert-kind-of'
47
47
  Enabled: 'pending'
48
48
  VersionAdded: '0.10'
49
+ VersionChanged: '0.34'
49
50
 
50
51
  Minitest/AssertMatch:
51
52
  Description: 'This cop enforces the test to use `assert_match` instead of using `assert(matcher.match(object))`.'
@@ -252,6 +253,7 @@ Minitest/RefuteKindOf:
252
253
  StyleGuide: 'https://github.com/rubocop/minitest-style-guide#refute-kind-of'
253
254
  Enabled: 'pending'
254
255
  VersionAdded: '0.10'
256
+ VersionChanged: '0.34'
255
257
 
256
258
  Minitest/RefuteMatch:
257
259
  Description: 'This cop enforces the test to use `refute_match` instead of using `refute(matcher.match(object))`.'
@@ -11,6 +11,11 @@ module RuboCop
11
11
  # assert(object.kind_of?(Class))
12
12
  # assert(object.kind_of?(Class), 'message')
13
13
  #
14
+ # # bad
15
+ # # `is_a?` is an alias for `kind_of?`
16
+ # assert(object.is_a?(Class))
17
+ # assert(object.is_a?(Class), 'message')
18
+ #
14
19
  # # good
15
20
  # assert_kind_of(Class, object)
16
21
  # assert_kind_of(Class, object, 'message')
@@ -18,7 +23,7 @@ module RuboCop
18
23
  class AssertKindOf < Base
19
24
  extend MinitestCopRule
20
25
 
21
- define_rule :assert, target_method: :kind_of?, inverse: true
26
+ define_rule :assert, target_method: %i[kind_of? is_a?], preferred_method: :assert_kind_of, inverse: true
22
27
  end
23
28
  end
24
29
  end
@@ -74,11 +74,21 @@ module RuboCop
74
74
  end
75
75
 
76
76
  def assertions_count_in_assignment(node)
77
- # checking the direct expression is handled by assertion_method?
78
- return 0 unless node.expression.block_type? || node.expression.numblock_type?
77
+ return assertions_count_based_on_type(node.expression) unless node.masgn_type?
79
78
 
80
- # this will only trigger the branches for :block and :numblock type nodes
81
- assertions_count_based_on_type(node.expression)
79
+ rhs = node.children.last
80
+
81
+ case rhs.type
82
+ when :array
83
+ rhs.children.sum { |child| assertions_count_based_on_type(child) }
84
+ when :send
85
+ assertion_method?(rhs) ? 1 : 0
86
+ else
87
+ # Play it safe and bail if we don't have any explicit handling for whatever
88
+ # the RHS type is, since at this point we're already probably dealing with
89
+ # a pretty exotic situation that's unlikely in the real world.
90
+ 0
91
+ end
82
92
  end
83
93
 
84
94
  def assertions_count_in_branches(branches)
@@ -36,6 +36,8 @@ module RuboCop
36
36
  add_offense(node)
37
37
  end
38
38
 
39
+ private
40
+
39
41
  def use_test_class?
40
42
  root_node = processed_source.ast
41
43
 
@@ -11,6 +11,11 @@ module RuboCop
11
11
  # refute(object.kind_of?(Class))
12
12
  # refute(object.kind_of?(Class), 'message')
13
13
  #
14
+ # # bad
15
+ # # `is_a?` is an alias for `kind_of?`
16
+ # refute(object.is_of?(Class))
17
+ # refute(object.is_of?(Class), 'message')
18
+ #
14
19
  # # good
15
20
  # refute_kind_of(Class, object)
16
21
  # refute_kind_of(Class, object, 'message')
@@ -18,7 +23,7 @@ module RuboCop
18
23
  class RefuteKindOf < Base
19
24
  extend MinitestCopRule
20
25
 
21
- define_rule :refute, target_method: :kind_of?, inverse: true
26
+ define_rule :refute, target_method: %i[kind_of? is_a?], preferred_method: :refute_kind_of, inverse: true
22
27
  end
23
28
  end
24
29
  end
@@ -48,7 +48,7 @@ module RuboCop
48
48
  when *SINGLE_ASSERTION_ARGUMENT_METHODS
49
49
  actual.nil? && expected&.literal? && !expected.xstr_type?
50
50
  when *TWO_ASSERTION_ARGUMENTS_METHODS
51
- return false unless expected || actual
51
+ return false unless expected && actual
52
52
  return false if expected.source != actual.source
53
53
 
54
54
  (expected.variable? && actual.variable?) ||
@@ -4,7 +4,7 @@ module RuboCop
4
4
  module Minitest
5
5
  # This module holds the RuboCop Minitest version information.
6
6
  module Version
7
- STRING = '0.34.3'
7
+ STRING = '0.34.5'
8
8
 
9
9
  def self.document_version
10
10
  STRING.match('\d+\.\d+').to_s
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-minitest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.34.3
4
+ version: 0.34.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2024-01-01 00:00:00.000000000 Z
13
+ date: 2024-01-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rubocop
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
159
  requirements: []
160
- rubygems_version: 3.1.6
160
+ rubygems_version: 3.5.3
161
161
  signing_key:
162
162
  specification_version: 4
163
163
  summary: Automatic Minitest code style checking tool.