diff --git a/ee/app/models/vulnerabilities/finding.rb b/ee/app/models/vulnerabilities/finding.rb index 528e22283f66dad4facda34a60229ceb18a8b756..6879e19e8af2dc364b5b994e9304a4d392a407c9 100644 --- a/ee/app/models/vulnerabilities/finding.rb +++ b/ee/app/models/vulnerabilities/finding.rb @@ -104,7 +104,7 @@ class Finding < ApplicationRecord delegate :name, :external_id, to: :scanner, prefix: true, allow_nil: true scope :report_type, ->(type) { where(report_type: report_types[type]) } - scope :ordered, -> { order(severity: :desc, confidence: :desc, id: :asc) } + scope :ordered, -> { order(severity: :desc, id: :asc) } scope :by_vulnerability, ->(vulnerability_id) { where(vulnerability: vulnerability_id) } scope :ids_by_vulnerability, ->(vulnerability_id) { by_vulnerability(vulnerability_id).pluck(:id) } diff --git a/ee/spec/models/vulnerabilities/finding_spec.rb b/ee/spec/models/vulnerabilities/finding_spec.rb index a0db17481f818ba02e8499b257ffdec89f78e7a0..42eeb4aa6dafe33505024d1abcf2e7e1e67214d5 100644 --- a/ee/spec/models/vulnerabilities/finding_spec.rb +++ b/ee/spec/models/vulnerabilities/finding_spec.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require 'spec_helper' RSpec.describe Vulnerabilities::Finding, feature_category: :vulnerability_management do @@ -159,12 +160,18 @@ end context 'order' do - let!(:finding1) { create(:vulnerabilities_finding, confidence: ::Enums::Vulnerability.confidence_levels[:high], severity: ::Enums::Vulnerability.severity_levels[:high]) } - let!(:finding2) { create(:vulnerabilities_finding, confidence: ::Enums::Vulnerability.confidence_levels[:medium], severity: ::Enums::Vulnerability.severity_levels[:critical]) } - let!(:finding3) { create(:vulnerabilities_finding, confidence: ::Enums::Vulnerability.confidence_levels[:high], severity: ::Enums::Vulnerability.severity_levels[:critical]) } + subject { described_class.all.ordered } + + let!(:expected_order) do + [ + create(:vulnerabilities_finding, id: 2001, severity: ::Enums::Vulnerability.severity_levels[:critical]), + create(:vulnerabilities_finding, id: 3001, severity: ::Enums::Vulnerability.severity_levels[:critical]), + create(:vulnerabilities_finding, id: 1001, severity: ::Enums::Vulnerability.severity_levels[:high]) + ] + end - it 'orders by severity and confidence' do - expect(described_class.all.ordered).to eq([finding3, finding2, finding1]) + it 'orders by severity desc and id asc' do + is_expected.to eq expected_order end end