Add coverage for custom filters (#30347)
This commit is contained in:
		
							parent
							
								
									00cf8d3748
								
							
						
					
					
						commit
						0a2110b9af
					
				
							
								
								
									
										72
									
								
								spec/system/filters_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								spec/system/filters_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,72 @@ | ||||
| # frozen_string_literal: true | ||||
| 
 | ||||
| require 'rails_helper' | ||||
| 
 | ||||
| describe 'Filters' do | ||||
|   let(:user) { Fabricate(:user) } | ||||
|   let(:filter_title) { 'Filter of fun and games' } | ||||
| 
 | ||||
|   before { sign_in(user) } | ||||
| 
 | ||||
|   describe 'Creating a filter' do | ||||
|     it 'Populates a new filter from form' do | ||||
|       navigate_to_filters | ||||
| 
 | ||||
|       click_on I18n.t('filters.new.title') | ||||
|       fill_in_filter_form | ||||
|       expect(page).to have_content(filter_title) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe 'Editing an existing filter' do | ||||
|     let(:new_title) { 'Change title value' } | ||||
| 
 | ||||
|     before { Fabricate :custom_filter, account: user.account, title: filter_title } | ||||
| 
 | ||||
|     it 'Updates the saved filter' do | ||||
|       navigate_to_filters | ||||
| 
 | ||||
|       click_on filter_title | ||||
| 
 | ||||
|       fill_in filter_title_field, with: new_title | ||||
|       click_on I18n.t('generic.save_changes') | ||||
| 
 | ||||
|       expect(page).to have_content(new_title) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe 'Destroying an existing filter' do | ||||
|     before { Fabricate :custom_filter, account: user.account, title: filter_title } | ||||
| 
 | ||||
|     it 'Deletes the filter' do | ||||
|       navigate_to_filters | ||||
| 
 | ||||
|       expect(page).to have_content filter_title | ||||
|       expect do | ||||
|         click_on I18n.t('filters.index.delete') | ||||
|       end.to change(CustomFilter, :count).by(-1) | ||||
| 
 | ||||
|       expect(page).to_not have_content(filter_title) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def navigate_to_filters | ||||
|     visit settings_path | ||||
| 
 | ||||
|     click_on I18n.t('filters.index.title') | ||||
|     expect(page).to have_content I18n.t('filters.index.title') | ||||
|   end | ||||
| 
 | ||||
|   def fill_in_filter_form | ||||
|     fill_in filter_title_field, with: filter_title | ||||
|     check I18n.t('filters.contexts.home') | ||||
|     within('.custom_filter_keywords_keyword') do | ||||
|       fill_in with: 'Keyword' | ||||
|     end | ||||
|     click_on I18n.t('filters.new.save') | ||||
|   end | ||||
| 
 | ||||
|   def filter_title_field | ||||
|     I18n.t('simple_form.labels.defaults.title') | ||||
|   end | ||||
| end | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user