Convert admin/tags controller specs to system specs (#32447)
				
					
				
			This commit is contained in:
		
							parent
							
								
									2343ce4441
								
							
						
					
					
						commit
						06d6b35e88
					
				| @ -1,82 +0,0 @@ | ||||
| # frozen_string_literal: true | ||||
| 
 | ||||
| require 'rails_helper' | ||||
| 
 | ||||
| RSpec.describe Admin::TagsController do | ||||
|   render_views | ||||
| 
 | ||||
|   before do | ||||
|     sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')) | ||||
|   end | ||||
| 
 | ||||
|   describe 'GET #index' do | ||||
|     before do | ||||
|       Fabricate(:tag) | ||||
| 
 | ||||
|       tag_filter = instance_double(Admin::TagFilter, results: Tag.all) | ||||
|       allow(Admin::TagFilter).to receive(:new).and_return(tag_filter) | ||||
|     end | ||||
| 
 | ||||
|     let(:params) { { order: 'newest' } } | ||||
| 
 | ||||
|     it 'returns http success' do | ||||
|       get :index | ||||
| 
 | ||||
|       expect(response).to have_http_status(200) | ||||
|       expect(response).to render_template(:index) | ||||
| 
 | ||||
|       expect(Admin::TagFilter) | ||||
|         .to have_received(:new) | ||||
|         .with(hash_including(params)) | ||||
|     end | ||||
| 
 | ||||
|     describe 'with filters' do | ||||
|       let(:params) { { order: 'newest', name: 'test' } } | ||||
| 
 | ||||
|       it 'returns http success' do | ||||
|         get :index, params: { name: 'test' } | ||||
| 
 | ||||
|         expect(response).to have_http_status(200) | ||||
|         expect(response).to render_template(:index) | ||||
| 
 | ||||
|         expect(Admin::TagFilter) | ||||
|           .to have_received(:new) | ||||
|           .with(hash_including(params)) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe 'GET #show' do | ||||
|     let!(:tag) { Fabricate(:tag) } | ||||
| 
 | ||||
|     before do | ||||
|       get :show, params: { id: tag.id } | ||||
|     end | ||||
| 
 | ||||
|     it 'returns status 200' do | ||||
|       expect(response).to have_http_status(200) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe 'PUT #update' do | ||||
|     let!(:tag) { Fabricate(:tag, listable: false) } | ||||
| 
 | ||||
|     context 'with valid params' do | ||||
|       it 'updates the tag' do | ||||
|         put :update, params: { id: tag.id, tag: { listable: '1' } } | ||||
| 
 | ||||
|         expect(response).to redirect_to(admin_tag_path(tag.id)) | ||||
|         expect(tag.reload).to be_listable | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     context 'with invalid params' do | ||||
|       it 'does not update the tag' do | ||||
|         put :update, params: { id: tag.id, tag: { name: 'cant-change-name' } } | ||||
| 
 | ||||
|         expect(response).to have_http_status(200) | ||||
|         expect(response).to render_template(:show) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
							
								
								
									
										38
									
								
								spec/system/admin/tags_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								spec/system/admin/tags_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | ||||
| # frozen_string_literal: true | ||||
| 
 | ||||
| require 'rails_helper' | ||||
| 
 | ||||
| RSpec.describe 'Admin Tags' do | ||||
|   describe 'Tag interaction' do | ||||
|     let!(:tag) { Fabricate(:tag, name: 'test') } | ||||
| 
 | ||||
|     before { sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } | ||||
| 
 | ||||
|     it 'allows tags listing and editing' do | ||||
|       visit admin_tags_path | ||||
| 
 | ||||
|       expect(page) | ||||
|         .to have_title(I18n.t('admin.tags.title')) | ||||
| 
 | ||||
|       click_on '#test' | ||||
| 
 | ||||
|       fill_in display_name_field, with: 'NewTagName' | ||||
|       expect { click_on submit_button } | ||||
|         .to_not(change { tag.reload.display_name }) | ||||
|       expect(page) | ||||
|         .to have_content(match_error_text) | ||||
| 
 | ||||
|       fill_in display_name_field, with: 'TEST' | ||||
|       expect { click_on submit_button } | ||||
|         .to(change { tag.reload.display_name }.to('TEST')) | ||||
|     end | ||||
| 
 | ||||
|     def display_name_field | ||||
|       I18n.t('simple_form.labels.defaults.display_name') | ||||
|     end | ||||
| 
 | ||||
|     def match_error_text | ||||
|       I18n.t('tags.does_not_match_previous_name') | ||||
|     end | ||||
|   end | ||||
| end | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user