Fix crash when marking statuses as sensitive while some statuses are deleted (#22134)
* Do not offer to mark statuses as sensitive if there is no undeleted status with media attachments * Fix crash when marking statuses as sensitive while some statuses are deleted Fixes #21910 * Fix multiple strikes being created for a single report when selecting “Mark as sensitive” * Add tests
This commit is contained in:
		
					parent
					
						
							
								a3a5aa1597
							
						
					
				
			
			
				commit
				
					
						21a1a8ee88
					
				
			
		
					 3 changed files with 51 additions and 9 deletions
				
			
		
							
								
								
									
										42
									
								
								spec/controllers/admin/reports/actions_controller_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								spec/controllers/admin/reports/actions_controller_spec.rb
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,42 @@ | |||
| require 'rails_helper' | ||||
| 
 | ||||
| describe Admin::Reports::ActionsController do | ||||
|   render_views | ||||
| 
 | ||||
|   let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } | ||||
|   let(:account) { Fabricate(:account) } | ||||
|   let!(:status) { Fabricate(:status, account: account) } | ||||
|   let(:media_attached_status) { Fabricate(:status, account: account) } | ||||
|   let!(:media_attachment) { Fabricate(:media_attachment, account: account, status: media_attached_status) } | ||||
|   let(:media_attached_deleted_status) { Fabricate(:status, account: account, deleted_at: 1.day.ago) } | ||||
|   let!(:media_attachment2) { Fabricate(:media_attachment, account: account, status: media_attached_deleted_status) } | ||||
|   let(:last_media_attached_status) { Fabricate(:status, account: account) } | ||||
|   let!(:last_media_attachment) { Fabricate(:media_attachment, account: account, status: last_media_attached_status) } | ||||
|   let!(:last_status) { Fabricate(:status, account: account) } | ||||
| 
 | ||||
|   before do | ||||
|     sign_in user, scope: :user | ||||
|   end | ||||
| 
 | ||||
|   describe 'POST #create' do | ||||
|     let(:report) { Fabricate(:report, status_ids: status_ids, account: user.account, target_account: account) } | ||||
|     let(:status_ids) { [media_attached_status.id, media_attached_deleted_status.id] } | ||||
| 
 | ||||
|     before do | ||||
|       post :create, params: { report_id: report.id, action => '' } | ||||
|     end | ||||
| 
 | ||||
|     context 'when action is mark_as_sensitive' do | ||||
| 
 | ||||
|       let(:action) { 'mark_as_sensitive' } | ||||
| 
 | ||||
|       it 'resolves the report' do | ||||
|         expect(report.reload.action_taken_at).to_not be_nil | ||||
|       end | ||||
| 
 | ||||
|       it 'marks the non-deleted as sensitive' do | ||||
|         expect(media_attached_status.reload.sensitive).to eq true | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue