Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/abuse_report_spec.rb')
-rw-r--r--spec/models/abuse_report_spec.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/models/abuse_report_spec.rb b/spec/models/abuse_report_spec.rb
index 6192a271028..584f9b010ad 100644
--- a/spec/models/abuse_report_spec.rb
+++ b/spec/models/abuse_report_spec.rb
@@ -164,6 +164,34 @@ RSpec.describe AbuseReport, feature_category: :insider_threat do
expect(described_class.by_category('phishing')).to match_array([report2])
end
end
+
+ describe '.aggregated_by_user_and_category' do
+ let_it_be(:report3) { create(:abuse_report, category: report1.category, user: report1.user) }
+ let_it_be(:report4) { create(:abuse_report, category: 'phishing', user: report1.user) }
+ let_it_be(:report5) { create(:abuse_report, category: report1.category, user: build(:user)) }
+
+ let_it_be(:sort_by_count) { true }
+
+ subject(:aggregated) { described_class.aggregated_by_user_and_category(sort_by_count) }
+
+ context 'when sort_by_count = true' do
+ it 'sorts by aggregated_count in descending order and created_at in descending order' do
+ expect(aggregated).to eq([report1, report5, report4, report])
+ end
+
+ it 'returns count with aggregated reports' do
+ expect(aggregated[0].count).to eq(2)
+ end
+ end
+
+ context 'when sort_by_count = false' do
+ let_it_be(:sort_by_count) { false }
+
+ it 'does not sort using a specific order' do
+ expect(aggregated).to match_array([report, report1, report4, report5])
+ end
+ end
+ end
end
describe 'before_validation' do