summaryrefslogtreecommitdiff
path: root/spec/finders/abuse_reports_finder_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/finders/abuse_reports_finder_spec.rb')
-rw-r--r--spec/finders/abuse_reports_finder_spec.rb30
1 files changed, 26 insertions, 4 deletions
diff --git a/spec/finders/abuse_reports_finder_spec.rb b/spec/finders/abuse_reports_finder_spec.rb
index 297f3487227..3dec6bf3eda 100644
--- a/spec/finders/abuse_reports_finder_spec.rb
+++ b/spec/finders/abuse_reports_finder_spec.rb
@@ -3,11 +3,12 @@
require 'spec_helper'
RSpec.describe AbuseReportsFinder, '#execute' do
+ let_it_be(:user1) { create(:user) }
+ let_it_be(:user2) { create(:user) }
+ let_it_be(:abuse_report_1) { create(:abuse_report, category: 'spam', user: user1) }
+ let_it_be(:abuse_report_2) { create(:abuse_report, :closed, category: 'phishing', user: user2) }
+
let(:params) { {} }
- let!(:user1) { create(:user) }
- let!(:user2) { create(:user) }
- let!(:abuse_report_1) { create(:abuse_report, category: 'spam', user: user1, reporter: user2) }
- let!(:abuse_report_2) { create(:abuse_report, :closed, category: 'phishing', user: user2) }
subject { described_class.new(params).execute }
@@ -25,6 +26,27 @@ RSpec.describe AbuseReportsFinder, '#execute' do
end
end
+ context 'when params[:user] is present' do
+ let(:params) { { user: abuse_report_1.user.username } }
+
+ it 'returns abuse reports for the specified user' do
+ expect(subject).to match_array([abuse_report_1])
+ end
+
+ context 'when no user has username = params[:user]' do
+ before do
+ allow(User).to receive_message_chain(:by_username, :pick)
+ .with(params[:user])
+ .with(:id)
+ .and_return(nil)
+ end
+
+ it 'returns all abuse reports' do
+ expect(subject).to match_array([abuse_report_1, abuse_report_2])
+ end
+ end
+ end
+
context 'when params[:status] is present' do
context 'when value is "open"' do
let(:params) { { status: 'open' } }