rubocop-minitest 0.4.0 → 0.6.1

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.
Files changed (40) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +3 -0
  3. data/.github/FUNDING.yml +2 -1
  4. data/.rubocop_todo.yml +5 -5
  5. data/CHANGELOG.md +32 -0
  6. data/Gemfile +1 -1
  7. data/LICENSE.txt +1 -1
  8. data/README.md +2 -2
  9. data/config/default.yml +17 -0
  10. data/lib/rubocop/cop/minitest/assert_empty.rb +5 -5
  11. data/lib/rubocop/cop/minitest/assert_empty_literal.rb +36 -0
  12. data/lib/rubocop/cop/minitest/assert_equal.rb +8 -13
  13. data/lib/rubocop/cop/minitest/assert_includes.rb +2 -37
  14. data/lib/rubocop/cop/minitest/assert_instance_of.rb +7 -8
  15. data/lib/rubocop/cop/minitest/assert_match.rb +60 -0
  16. data/lib/rubocop/cop/minitest/assert_nil.rb +8 -3
  17. data/lib/rubocop/cop/minitest/assert_respond_to.rb +20 -9
  18. data/lib/rubocop/cop/minitest/assert_truthy.rb +8 -3
  19. data/lib/rubocop/cop/minitest/refute_empty.rb +5 -5
  20. data/lib/rubocop/cop/minitest/refute_equal.rb +7 -8
  21. data/lib/rubocop/cop/minitest/refute_false.rb +38 -9
  22. data/lib/rubocop/cop/minitest/refute_includes.rb +2 -37
  23. data/lib/rubocop/cop/minitest/refute_instance_of.rb +7 -8
  24. data/lib/rubocop/cop/minitest/refute_match.rb +60 -0
  25. data/lib/rubocop/cop/minitest/refute_nil.rb +8 -3
  26. data/lib/rubocop/cop/minitest/refute_respond_to.rb +20 -9
  27. data/lib/rubocop/cop/minitest_cops.rb +5 -0
  28. data/lib/rubocop/cop/mixin/argument_range_helper.rb +31 -0
  29. data/lib/rubocop/cop/mixin/includes_cop_rule.rb +78 -0
  30. data/lib/rubocop/minitest/inject.rb +1 -1
  31. data/lib/rubocop/minitest/version.rb +1 -1
  32. data/manual/cops.md +3 -0
  33. data/manual/cops_minitest.md +77 -0
  34. data/relnotes/v0.4.1.md +5 -0
  35. data/relnotes/v0.5.0.md +5 -0
  36. data/relnotes/v0.5.1.md +5 -0
  37. data/relnotes/v0.6.0.md +5 -0
  38. data/relnotes/v0.6.1.md +6 -0
  39. data/rubocop-minitest.gemspec +2 -2
  40. metadata +16 -5
@@ -8,7 +8,7 @@ module RuboCop
8
8
  def self.defaults!
9
9
  path = CONFIG_DEFAULT.to_s
10
10
  hash = ConfigLoader.send(:load_yaml_configuration, path)
11
- config = Config.new(hash, path)
11
+ config = Config.new(hash, path).tap(&:make_excludes_absolute)
12
12
  puts "configuration from #{path}" if ConfigLoader.debug?
13
13
  config = ConfigLoader.merge_with_default(config, path)
14
14
  ConfigLoader.instance_variable_set(:@default_configuration, config)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module Minitest
5
- VERSION = '0.4.0'
5
+ VERSION = '0.6.1'
6
6
  end
7
7
  end
@@ -2,9 +2,11 @@
2
2
  #### Department [Minitest](cops_minitest.md)
3
3
 
4
4
  * [Minitest/AssertEmpty](cops_minitest.md#minitestassertempty)
5
+ * [Minitest/AssertEmptyLiteral](cops_minitest.md#minitestassertemptyliteral)
5
6
  * [Minitest/AssertEqual](cops_minitest.md#minitestassertequal)
6
7
  * [Minitest/AssertIncludes](cops_minitest.md#minitestassertincludes)
7
8
  * [Minitest/AssertInstanceOf](cops_minitest.md#minitestassertinstanceof)
9
+ * [Minitest/AssertMatch](cops_minitest.md#minitestassertmatch)
8
10
  * [Minitest/AssertNil](cops_minitest.md#minitestassertnil)
9
11
  * [Minitest/AssertRespondTo](cops_minitest.md#minitestassertrespondto)
10
12
  * [Minitest/AssertTruthy](cops_minitest.md#minitestasserttruthy)
@@ -13,6 +15,7 @@
13
15
  * [Minitest/RefuteFalse](cops_minitest.md#minitestrefutefalse)
14
16
  * [Minitest/RefuteIncludes](cops_minitest.md#minitestrefuteincludes)
15
17
  * [Minitest/RefuteInstanceOf](cops_minitest.md#minitestrefuteinstanceof)
18
+ * [Minitest/RefuteMatch](cops_minitest.md#minitestrefutematch)
16
19
  * [Minitest/RefuteNil](cops_minitest.md#minitestrefutenil)
17
20
  * [Minitest/RefuteRespondTo](cops_minitest.md#minitestrefuterespondto)
18
21
 
@@ -25,6 +25,26 @@ assert_empty(object, 'the message')
25
25
 
26
26
  * [https://github.com/rubocop-hq/minitest-style-guide#assert-empty](https://github.com/rubocop-hq/minitest-style-guide#assert-empty)
27
27
 
28
+ ## Minitest/AssertEmptyLiteral
29
+
30
+ Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
31
+ --- | --- | --- | --- | ---
32
+ Enabled | Yes | No | 0.5 | -
33
+
34
+ This cop enforces the test to use `assert_empty`
35
+ instead of using `assert([], object)`.
36
+
37
+ ### Examples
38
+
39
+ ```ruby
40
+ # bad
41
+ assert([], object)
42
+ assert({}, object)
43
+
44
+ # good
45
+ assert_empty(object)
46
+ ```
47
+
28
48
  ## Minitest/AssertEqual
29
49
 
30
50
  Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
@@ -98,6 +118,31 @@ assert_instance_of(Class, object, 'the message')
98
118
 
99
119
  * [https://github.com/rubocop-hq/minitest-style-guide#assert-instance-of](https://github.com/rubocop-hq/minitest-style-guide#assert-instance-of)
100
120
 
121
+ ## Minitest/AssertMatch
122
+
123
+ Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
124
+ --- | --- | --- | --- | ---
125
+ Enabled | Yes | Yes | 0.6 | -
126
+
127
+ This cop enforces the test to use `assert_match`
128
+ instead of using `assert(matcher.match(string))`.
129
+
130
+ ### Examples
131
+
132
+ ```ruby
133
+ # bad
134
+ assert(matcher.match(string))
135
+ assert(matcher.match(string), 'the message')
136
+
137
+ # good
138
+ assert_match(regex, string)
139
+ assert_match(matcher, string, 'the message')
140
+ ```
141
+
142
+ ### References
143
+
144
+ * [https://github.com/rubocop-hq/minitest-style-guide#assert-match](https://github.com/rubocop-hq/minitest-style-guide#assert-match)
145
+
101
146
  ## Minitest/AssertNil
102
147
 
103
148
  Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
@@ -138,10 +183,12 @@ over `assert(object.respond_to?(:some_method))`.
138
183
  # bad
139
184
  assert(object.respond_to?(:some_method))
140
185
  assert(object.respond_to?(:some_method), 'the message')
186
+ assert(respond_to?(:some_method))
141
187
 
142
188
  # good
143
189
  assert_respond_to(object, :some_method)
144
190
  assert_respond_to(object, :some_method, 'the message')
191
+ assert_respond_to(self, some_method)
145
192
  ```
146
193
 
147
194
  ### References
@@ -238,6 +285,9 @@ over `assert_equal(false, object)`.
238
285
  assert_equal(false, actual)
239
286
  assert_equal(false, actual, 'the message')
240
287
 
288
+ assert(!test)
289
+ assert(!test, 'the message')
290
+
241
291
  # good
242
292
  refute(actual)
243
293
  refute(actual, 'the message')
@@ -297,6 +347,31 @@ refute_instance_of(Class, object, 'the message')
297
347
 
298
348
  * [https://github.com/rubocop-hq/minitest-style-guide#refute-instance-of](https://github.com/rubocop-hq/minitest-style-guide#refute-instance-of)
299
349
 
350
+ ## Minitest/RefuteMatch
351
+
352
+ Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
353
+ --- | --- | --- | --- | ---
354
+ Enabled | Yes | Yes | 0.6 | -
355
+
356
+ This cop enforces the test to use `refute_match`
357
+ instead of using `refute(matcher.match(string))`.
358
+
359
+ ### Examples
360
+
361
+ ```ruby
362
+ # bad
363
+ refute(matcher.match(string))
364
+ refute(matcher.match(string), 'the message')
365
+
366
+ # good
367
+ refute_match(matcher, string)
368
+ refute_match(matcher, string, 'the message')
369
+ ```
370
+
371
+ ### References
372
+
373
+ * [https://github.com/rubocop-hq/minitest-style-guide#refute-match](https://github.com/rubocop-hq/minitest-style-guide#refute-match)
374
+
300
375
  ## Minitest/RefuteNil
301
376
 
302
377
  Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
@@ -337,10 +412,12 @@ over `refute(object.respond_to?(:some_method))`.
337
412
  # bad
338
413
  refute(object.respond_to?(:some_method))
339
414
  refute(object.respond_to?(:some_method), 'the message')
415
+ refute(respond_to?(:some_method))
340
416
 
341
417
  # good
342
418
  refute_respond_to(object, :some_method)
343
419
  refute_respond_to(object, :some_method, 'the message')
420
+ refute_respond_to(self, :some_method)
344
421
  ```
345
422
 
346
423
  ### References
@@ -0,0 +1,5 @@
1
+ ### Bug fixes
2
+
3
+ * [#39](https://github.com/rubocop-hq/rubocop-minitest/issues/39): Fix an incorrect autocorrect for `Minitest/AssertRespondTo` and `Minitest/RefuteRespondTo` when using assertion method calling `respond_to` with receiver omitted. ([@koic][])
4
+
5
+ [@koic]: https://github.com/koic
@@ -0,0 +1,5 @@
1
+ ### New features
2
+
3
+ * [#32](https://github.com/rubocop-hq/rubocop-minitest/issues/32): Add new `Minitest/AssertEmptyLiteral` cop. ([@tejasbubane][])
4
+
5
+ [@tejasbubane]: https://github.com/tejasbubane
@@ -0,0 +1,5 @@
1
+ ### Bug fixes
2
+
3
+ * [#42](https://github.com/rubocop-hq/rubocop-minitest/issues/42): Fix an incorrect autocorrect for some cops of `Minitest` department when using heredoc message. ([@koic][])
4
+
5
+ [@koic]: https://github.com/koic
@@ -0,0 +1,5 @@
1
+ ### New features
2
+
3
+ * [#49](https://github.com/rubocop-hq/rubocop-minitest/pull/49): New cops `AssertMatch` and `RefuteMatch` check for use of `assert_match`/`refute_match` instead of `assert(foo.match(bar))`/`refute(foo.match(bar))`. ([@fsateler][])
4
+
5
+ [@fsateler]: https://github.com/fsateler
@@ -0,0 +1,6 @@
1
+ ### Bug fixes
2
+
3
+ * [#52](https://github.com/rubocop-hq/rubocop-minitest/issues/52): Make `Minitest/RefuteFalse` cop aware of `assert(!test)`. ([@koic][])
4
+ * [#52](https://github.com/rubocop-hq/rubocop-minitest/issues/52): Fix a false negative for `Minitest/AssertIncludes` and `Minitest/RefuteIncludes` when an argument is enclosed in redundant parentheses. ([@koic][])
5
+
6
+ [@koic]: https://github.com/koic
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.required_ruby_version = '>= 2.3.0'
20
20
  spec.metadata = {
21
- 'homepage_uri' => 'https://docs.rubocop.org/projects/minitest',
21
+ 'homepage_uri' => 'https://docs.rubocop.org/projects/minitest/',
22
22
  'changelog_uri' => 'https://github.com/rubocop-hq/rubocop-minitest/blob/master/CHANGELOG.md',
23
23
  'source_code_uri' => 'https://github.com/rubocop-hq/rubocop-minitest',
24
- 'documentation_uri' => 'https://docs.rubocop.org/projects/minitest',
24
+ 'documentation_uri' => 'https://docs.rubocop.org/projects/minitest/',
25
25
  'bug_tracker_uri' => 'https://github.com/rubocop-hq/rubocop-minitest/issues'
26
26
  }
27
27
 
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.4.0
4
+ version: 0.6.1
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: 2019-11-07 00:00:00.000000000 Z
13
+ date: 2020-02-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rubocop
@@ -67,9 +67,11 @@ files:
67
67
  - config/default.yml
68
68
  - lib/rubocop-minitest.rb
69
69
  - lib/rubocop/cop/minitest/assert_empty.rb
70
+ - lib/rubocop/cop/minitest/assert_empty_literal.rb
70
71
  - lib/rubocop/cop/minitest/assert_equal.rb
71
72
  - lib/rubocop/cop/minitest/assert_includes.rb
72
73
  - lib/rubocop/cop/minitest/assert_instance_of.rb
74
+ - lib/rubocop/cop/minitest/assert_match.rb
73
75
  - lib/rubocop/cop/minitest/assert_nil.rb
74
76
  - lib/rubocop/cop/minitest/assert_respond_to.rb
75
77
  - lib/rubocop/cop/minitest/assert_truthy.rb
@@ -78,9 +80,12 @@ files:
78
80
  - lib/rubocop/cop/minitest/refute_false.rb
79
81
  - lib/rubocop/cop/minitest/refute_includes.rb
80
82
  - lib/rubocop/cop/minitest/refute_instance_of.rb
83
+ - lib/rubocop/cop/minitest/refute_match.rb
81
84
  - lib/rubocop/cop/minitest/refute_nil.rb
82
85
  - lib/rubocop/cop/minitest/refute_respond_to.rb
83
86
  - lib/rubocop/cop/minitest_cops.rb
87
+ - lib/rubocop/cop/mixin/argument_range_helper.rb
88
+ - lib/rubocop/cop/mixin/includes_cop_rule.rb
84
89
  - lib/rubocop/minitest.rb
85
90
  - lib/rubocop/minitest/inject.rb
86
91
  - lib/rubocop/minitest/version.rb
@@ -96,6 +101,11 @@ files:
96
101
  - relnotes/v0.2.1.md
97
102
  - relnotes/v0.3.0.md
98
103
  - relnotes/v0.4.0.md
104
+ - relnotes/v0.4.1.md
105
+ - relnotes/v0.5.0.md
106
+ - relnotes/v0.5.1.md
107
+ - relnotes/v0.6.0.md
108
+ - relnotes/v0.6.1.md
99
109
  - rubocop-minitest.gemspec
100
110
  - tasks/cops_documentation.rake
101
111
  - tasks/cut_release.rake
@@ -103,10 +113,10 @@ homepage:
103
113
  licenses:
104
114
  - MIT
105
115
  metadata:
106
- homepage_uri: https://docs.rubocop.org/projects/minitest
116
+ homepage_uri: https://docs.rubocop.org/projects/minitest/
107
117
  changelog_uri: https://github.com/rubocop-hq/rubocop-minitest/blob/master/CHANGELOG.md
108
118
  source_code_uri: https://github.com/rubocop-hq/rubocop-minitest
109
- documentation_uri: https://docs.rubocop.org/projects/minitest
119
+ documentation_uri: https://docs.rubocop.org/projects/minitest/
110
120
  bug_tracker_uri: https://github.com/rubocop-hq/rubocop-minitest/issues
111
121
  post_install_message:
112
122
  rdoc_options: []
@@ -123,7 +133,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
133
  - !ruby/object:Gem::Version
124
134
  version: '0'
125
135
  requirements: []
126
- rubygems_version: 3.0.3
136
+ rubyforge_project:
137
+ rubygems_version: 2.5.2.3
127
138
  signing_key:
128
139
  specification_version: 4
129
140
  summary: Automatic Minitest code style checking tool.