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