diff --git a/app/models/submission/test_run.rb b/app/models/submission/test_run.rb index ecdb804534..a9d031c352 100644 --- a/app/models/submission/test_run.rb +++ b/app/models/submission/test_run.rb @@ -74,7 +74,7 @@ class TestResult def to_h { name: test[:name].to_s, - status: test[:status].try(&:to_sym), + status: Array(test[:status]).first.try(&:to_sym), test_code: test[:test_code], message: test[:message], message_html: Ansi::RenderHTML.(test[:message]), diff --git a/test/models/submission/test_run_test.rb b/test/models/submission/test_run_test.rb index 01c9029747..dc597111f5 100644 --- a/test/models/submission/test_run_test.rb +++ b/test/models/submission/test_run_test.rb @@ -235,6 +235,12 @@ class Submission::TestRunTest < ActiveSupport::TestCase assert_equal 3, tr.version end + test "handles test result status as array" do + tests = [{ 'name' => 'test1', 'status' => ['pass'] }] + tr = create(:submission_test_run, raw_results: { version: 2, status: 'pass', tests: tests }) + assert_equal :pass, tr.test_results.first.to_h[:status] + end + test "truncate message" do message = 'a' * 66_000 test_run = create(:submission_test_run, raw_results: { message: })