diff --git a/changelog/fix_an_error_for_style_useless_assertion.md b/changelog/fix_an_error_for_style_useless_assertion.md new file mode 100644 index 0000000..d42fe14 --- /dev/null +++ b/changelog/fix_an_error_for_style_useless_assertion.md @@ -0,0 +1 @@ +* [#299](https://github.com/rubocop/rubocop-minitest/pull/299): Fix an error for `Style/UselessAssertion` when passing a single argument to methods to accept two arguments. ([@earlopain][]) diff --git a/lib/rubocop/cop/minitest/useless_assertion.rb b/lib/rubocop/cop/minitest/useless_assertion.rb index 3f41109..6dc3de0 100644 --- a/lib/rubocop/cop/minitest/useless_assertion.rb +++ b/lib/rubocop/cop/minitest/useless_assertion.rb @@ -48,7 +48,7 @@ def offense?(node) when *SINGLE_ASSERTION_ARGUMENT_METHODS actual.nil? && expected&.literal? && !expected.xstr_type? when *TWO_ASSERTION_ARGUMENTS_METHODS - return false unless expected || actual + return false unless expected && actual return false if expected.source != actual.source (expected.variable? && actual.variable?) || diff --git a/test/rubocop/cop/minitest/useless_assertion_test.rb b/test/rubocop/cop/minitest/useless_assertion_test.rb index 802c3af..9438726 100644 --- a/test/rubocop/cop/minitest/useless_assertion_test.rb +++ b/test/rubocop/cop/minitest/useless_assertion_test.rb @@ -93,6 +93,12 @@ class UselessAssertionTest < Minitest::Test #{matcher} x.foo, x.foo RUBY end + + define_method("test_#{matcher}_no_offense_when_only_single_argument_is_given") do + assert_no_offenses(<<~RUBY) + #{matcher} foo + RUBY + end end %i[assert_includes refute_includes].each do |matcher|