diff options
Diffstat (limited to 'spec/lib/gitlab/ci/reports/test_suite_spec.rb')
-rw-r--r-- | spec/lib/gitlab/ci/reports/test_suite_spec.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/lib/gitlab/ci/reports/test_suite_spec.rb b/spec/lib/gitlab/ci/reports/test_suite_spec.rb index fbe3473f6b0..15fa78444e5 100644 --- a/spec/lib/gitlab/ci/reports/test_suite_spec.rb +++ b/spec/lib/gitlab/ci/reports/test_suite_spec.rb @@ -176,6 +176,37 @@ RSpec.describe Gitlab::Ci::Reports::TestSuite do end end + describe '#sorted' do + subject { test_suite.sorted } + + context 'when there are multiple failed test cases' do + before do + test_suite.add_test_case(create_test_case_rspec_failed('test_spec_1', 1.11)) + test_suite.add_test_case(create_test_case_rspec_failed('test_spec_2', 4.44)) + end + + it 'returns test cases sorted by execution time desc' do + expect(subject.test_cases['failed'].each_value.first.execution_time).to eq(4.44) + expect(subject.test_cases['failed'].values.second.execution_time).to eq(1.11) + end + end + + context 'when there are multiple test cases' do + let(:status_ordered) { %w(error failed success skipped) } + + before do + test_suite.add_test_case(test_case_success) + test_suite.add_test_case(test_case_failed) + test_suite.add_test_case(test_case_error) + test_suite.add_test_case(test_case_skipped) + end + + it 'returns test cases sorted by status' do + expect(subject.test_cases.keys).to eq(status_ordered) + end + end + end + Gitlab::Ci::Reports::TestCase::STATUS_TYPES.each do |status_type| describe "##{status_type}" do subject { test_suite.public_send("#{status_type}") } |