lib/rubocop/cop/minitest/multiple_assertions.rb in rubocop-minitest-0.34.2 vs lib/rubocop/cop/minitest/multiple_assertions.rb in rubocop-minitest-0.34.3

- old
+ new

@@ -51,23 +51,35 @@ private def assertions_count(node) return 0 unless node.is_a?(RuboCop::AST::Node) - assertions = - case node.type - when :if, :case, :case_match - assertions_count_in_branches(node.branches) - when :rescue - assertions_count(node.body) + assertions_count_in_branches(node.branches) - when :block, :numblock - assertions_count(node.body) - else - node.each_child_node.sum { |child| assertions_count(child) } - end - + assertions = assertions_count_based_on_type(node) assertions += 1 if assertion_method?(node) assertions + end + + def assertions_count_based_on_type(node) + case node.type + when :if, :case, :case_match + assertions_count_in_branches(node.branches) + when :rescue + assertions_count(node.body) + assertions_count_in_branches(node.branches) + when :block, :numblock + assertions_count(node.body) + when *RuboCop::AST::Node::ASSIGNMENTS + assertions_count_in_assignment(node) + else + node.each_child_node.sum { |child| assertions_count(child) } + end + end + + def assertions_count_in_assignment(node) + # checking the direct expression is handled by assertion_method? + return 0 unless node.expression.block_type? || node.expression.numblock_type? + + # this will only trigger the branches for :block and :numblock type nodes + assertions_count_based_on_type(node.expression) end def assertions_count_in_branches(branches) branches.map { |branch| assertions_count(branch) }.max end