diff options
Diffstat (limited to 'spec/finders/abuse_reports_finder_spec.rb')
-rw-r--r-- | spec/finders/abuse_reports_finder_spec.rb | 30 |
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' } } |