diff --git a/ruby/lib/minitest/queue/failure_formatter.rb b/ruby/lib/minitest/queue/failure_formatter.rb index 9b6ca97..59ba6c1 100644 --- a/ruby/lib/minitest/queue/failure_formatter.rb +++ b/ruby/lib/minitest/queue/failure_formatter.rb @@ -13,11 +13,9 @@ def initialize(test) end def to_s - [ - header, - body, - "\n" - ].flatten.compact.join("\n") + s = +"#{header}\n#{body}\n\n" + s.encode!(Encoding::UTF_8, invalid: :replace, undef: :replace) + s end def to_h diff --git a/ruby/test/minitest/queue/failure_formatter_test.rb b/ruby/test/minitest/queue/failure_formatter_test.rb new file mode 100644 index 0000000..2d5ca2e --- /dev/null +++ b/ruby/test/minitest/queue/failure_formatter_test.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +require 'test_helper' + +module Minitest::Queue + class FailureFormatterTest < Minitest::Test + include ReporterTestHelper + + def test_failure_formatter_to_h_can_be_json_dumped + test = result('test_json', failure: "\xD6".b) + + formatter = FailureFormatter.new(test) + + assert JSON.dump(formatter.to_h) + end + end +end