Add missing action logging to `api/v1/admin/reports#update` (#29044)
This commit is contained in:
		
							parent
							
								
									a31427a629
								
							
						
					
					
						commit
						4cf07ed78c
					
				| 
						 | 
				
			
			@ -35,6 +35,7 @@ class Api::V1::Admin::ReportsController < Api::BaseController
 | 
			
		|||
  def update
 | 
			
		||||
    authorize @report, :update?
 | 
			
		||||
    @report.update!(report_params)
 | 
			
		||||
    log_action :update, @report
 | 
			
		||||
    render json: @report, serializer: REST::Admin::ReportSerializer
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,6 +58,7 @@ describe Admin::ReportsController do
 | 
			
		|||
      report.reload
 | 
			
		||||
      expect(report.action_taken_by_account).to eq user.account
 | 
			
		||||
      expect(report.action_taken?).to be true
 | 
			
		||||
      expect(last_action_log.target).to eq(report)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -70,6 +71,7 @@ describe Admin::ReportsController do
 | 
			
		|||
      report.reload
 | 
			
		||||
      expect(report.action_taken_by_account).to be_nil
 | 
			
		||||
      expect(report.action_taken?).to be false
 | 
			
		||||
      expect(last_action_log.target).to eq(report)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -81,6 +83,7 @@ describe Admin::ReportsController do
 | 
			
		|||
      expect(response).to redirect_to(admin_report_path(report))
 | 
			
		||||
      report.reload
 | 
			
		||||
      expect(report.assigned_account).to eq user.account
 | 
			
		||||
      expect(last_action_log.target).to eq(report)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -92,6 +95,13 @@ describe Admin::ReportsController do
 | 
			
		|||
      expect(response).to redirect_to(admin_report_path(report))
 | 
			
		||||
      report.reload
 | 
			
		||||
      expect(report.assigned_account).to be_nil
 | 
			
		||||
      expect(last_action_log.target).to eq(report)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def last_action_log
 | 
			
		||||
    Admin::ActionLog.last
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -151,7 +151,9 @@ RSpec.describe 'Reports' do
 | 
			
		|||
    let(:params)  { { category: 'spam' } }
 | 
			
		||||
 | 
			
		||||
    it 'updates the report category', :aggregate_failures do
 | 
			
		||||
      expect { subject }.to change { report.reload.category }.from('other').to('spam')
 | 
			
		||||
      expect { subject }
 | 
			
		||||
        .to change { report.reload.category }.from('other').to('spam')
 | 
			
		||||
        .and create_an_action_log
 | 
			
		||||
 | 
			
		||||
      expect(response).to have_http_status(200)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -184,7 +186,9 @@ RSpec.describe 'Reports' do
 | 
			
		|||
    it_behaves_like 'forbidden for wrong role', ''
 | 
			
		||||
 | 
			
		||||
    it 'marks report as resolved', :aggregate_failures do
 | 
			
		||||
      expect { subject }.to change { report.reload.unresolved? }.from(true).to(false)
 | 
			
		||||
      expect { subject }
 | 
			
		||||
        .to change { report.reload.unresolved? }.from(true).to(false)
 | 
			
		||||
        .and create_an_action_log
 | 
			
		||||
      expect(response).to have_http_status(200)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
| 
						 | 
				
			
			@ -200,7 +204,9 @@ RSpec.describe 'Reports' do
 | 
			
		|||
    it_behaves_like 'forbidden for wrong role', ''
 | 
			
		||||
 | 
			
		||||
    it 'marks report as unresolved', :aggregate_failures do
 | 
			
		||||
      expect { subject }.to change { report.reload.unresolved? }.from(false).to(true)
 | 
			
		||||
      expect { subject }
 | 
			
		||||
        .to change { report.reload.unresolved? }.from(false).to(true)
 | 
			
		||||
        .and create_an_action_log
 | 
			
		||||
      expect(response).to have_http_status(200)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
| 
						 | 
				
			
			@ -216,7 +222,9 @@ RSpec.describe 'Reports' do
 | 
			
		|||
    it_behaves_like 'forbidden for wrong role', ''
 | 
			
		||||
 | 
			
		||||
    it 'assigns report to the requesting user', :aggregate_failures do
 | 
			
		||||
      expect { subject }.to change { report.reload.assigned_account_id }.from(nil).to(user.account.id)
 | 
			
		||||
      expect { subject }
 | 
			
		||||
        .to change { report.reload.assigned_account_id }.from(nil).to(user.account.id)
 | 
			
		||||
        .and create_an_action_log
 | 
			
		||||
      expect(response).to have_http_status(200)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
| 
						 | 
				
			
			@ -232,8 +240,16 @@ RSpec.describe 'Reports' do
 | 
			
		|||
    it_behaves_like 'forbidden for wrong role', ''
 | 
			
		||||
 | 
			
		||||
    it 'unassigns report from assignee', :aggregate_failures do
 | 
			
		||||
      expect { subject }.to change { report.reload.assigned_account_id }.from(user.account.id).to(nil)
 | 
			
		||||
      expect { subject }
 | 
			
		||||
        .to change { report.reload.assigned_account_id }.from(user.account.id).to(nil)
 | 
			
		||||
        .and create_an_action_log
 | 
			
		||||
      expect(response).to have_http_status(200)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def create_an_action_log
 | 
			
		||||
    change(Admin::ActionLog, :count).by(1)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue