module RuboCop::Minitest::AssertOffense
def assert_correction(correction, loop: true)
def assert_correction(correction, loop: true) raise '`assert_correction` must follow `assert_offense`' unless @processed_source iteration = 0 new_source = loop do iteration += 1 corrected_source = @last_corrector.rewrite break corrected_source unless loop break corrected_source if @last_corrector.empty? || corrected_source == @processed_source.buffer.source if iteration > RuboCop::Runner::MAX_ITERATIONS raise RuboCop::Runner::InfiniteCorrectionLoop.new(@processed_source.path, [@offenses]) end # Prepare for next loop @processed_source = parse_source!(corrected_source, @processed_source.path) _investigate(cop, @processed_source) end assert_equal(correction, new_source) end