Add basic end-to-end test for admin moderation interface (#29424)
This commit is contained in:
		
							parent
							
								
									036f5a05e3
								
							
						
					
					
						commit
						6f7615ba86
					
				| @ -21,6 +21,12 @@ module ProfileStories | ||||
|     click_on I18n.t('auth.login') | ||||
|   end | ||||
| 
 | ||||
|   def as_a_logged_in_admin | ||||
|     # This is a bit awkward, but this avoids code duplication. | ||||
|     as_a_logged_in_user | ||||
|     bob.update!(role: UserRole.find_by!(name: 'Admin')) | ||||
|   end | ||||
| 
 | ||||
|   def with_alice_as_local_user | ||||
|     @alice_bio = '@alice and @bob are fictional characters commonly used as' \ | ||||
|                  'placeholder names in #cryptology, as well as #science and' \ | ||||
|  | ||||
| @ -109,6 +109,9 @@ RSpec.configure do |config| | ||||
|       # Also needs to be set per-example here because of the database cleaner. | ||||
|       Setting.registrations_mode = 'open' | ||||
| 
 | ||||
|       # Load seeds so we have the default roles otherwise cleared by `DatabaseCleaner` | ||||
|       Rails.application.load_seed | ||||
| 
 | ||||
|       example.run | ||||
|     end | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										31
									
								
								spec/system/report_interface_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								spec/system/report_interface_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | ||||
| # frozen_string_literal: true | ||||
| 
 | ||||
| require 'rails_helper' | ||||
| 
 | ||||
| describe 'report interface', :paperclip_processing do | ||||
|   include ProfileStories | ||||
| 
 | ||||
|   let(:email)               { 'admin@example.com' } | ||||
|   let(:password)            { 'password' } | ||||
|   let(:confirmed_at)        { Time.zone.now } | ||||
|   let(:finished_onboarding) { true } | ||||
| 
 | ||||
|   let(:reported_account) { Fabricate(:account) } | ||||
|   let(:reported_status) { Fabricate(:status, account: reported_account) } | ||||
|   let(:media_attachment) { Fabricate(:media_attachment, account: reported_account, status: reported_status, file: attachment_fixture('attachment.jpg')) } | ||||
|   let!(:report) { Fabricate(:report, target_account: reported_account, status_ids: [media_attachment.status.id]) } | ||||
| 
 | ||||
|   before do | ||||
|     as_a_logged_in_admin | ||||
|     visit admin_report_path(report) | ||||
|   end | ||||
| 
 | ||||
|   it 'displays the report interface, including the javascript bits' do | ||||
|     # The report category selector React component is properly rendered | ||||
|     expect(page).to have_css('.report-reason-selector') | ||||
| 
 | ||||
|     # The media React component is properly rendered | ||||
|     page.scroll_to(page.find('.batch-table__row')) | ||||
|     expect(page).to have_css('.spoiler-button__overlay__label') | ||||
|   end | ||||
| end | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user