diff options
Diffstat (limited to 'spec/lib/gitlab/ci/reports/codequality_reports_spec.rb')
-rw-r--r-- | spec/lib/gitlab/ci/reports/codequality_reports_spec.rb | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/spec/lib/gitlab/ci/reports/codequality_reports_spec.rb b/spec/lib/gitlab/ci/reports/codequality_reports_spec.rb index ae9b2f2c62b..3b0eaffc54e 100644 --- a/spec/lib/gitlab/ci/reports/codequality_reports_spec.rb +++ b/spec/lib/gitlab/ci/reports/codequality_reports_spec.rb @@ -34,8 +34,6 @@ RSpec.describe Gitlab::Ci::Reports::CodequalityReports do it 'sets location as an error' do codequality_report.add_degradation(invalid_degradation) - - expect(codequality_report.error_message).to eq("Invalid degradation format: The property '#/' did not contain a required property of 'location'") end end end @@ -79,4 +77,36 @@ RSpec.describe Gitlab::Ci::Reports::CodequalityReports do end end end + + describe '#sort_degradations!' do + let(:major) { build(:codequality_degradation, :major) } + let(:minor) { build(:codequality_degradation, :minor) } + let(:blocker) { build(:codequality_degradation, :blocker) } + let(:info) { build(:codequality_degradation, :info) } + let(:major_2) { build(:codequality_degradation, :major) } + let(:critical) { build(:codequality_degradation, :critical) } + let(:codequality_report) { described_class.new } + + before do + codequality_report.add_degradation(major) + codequality_report.add_degradation(minor) + codequality_report.add_degradation(blocker) + codequality_report.add_degradation(major_2) + codequality_report.add_degradation(info) + codequality_report.add_degradation(critical) + + codequality_report.sort_degradations! + end + + it 'sorts degradations based on severity' do + expect(codequality_report.degradations.values).to eq([ + blocker, + critical, + major, + major_2, + minor, + info + ]) + end + end end |