Add specs for CustomEmojiFilter (#9599)
This commit is contained in:
		
							parent
							
								
									a6079a42b6
								
							
						
					
					
						commit
						eee2b05ea2
					
				
							
								
								
									
										70
									
								
								spec/models/custom_emoji_filter_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								spec/models/custom_emoji_filter_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,70 @@ | ||||
| # frozen_string_literal: true | ||||
| 
 | ||||
| require 'rails_helper' | ||||
| 
 | ||||
| RSpec.describe CustomEmojiFilter do | ||||
|   describe '#results' do | ||||
|     let!(:custom_emoji_0) { Fabricate(:custom_emoji, domain: 'a') } | ||||
|     let!(:custom_emoji_1) { Fabricate(:custom_emoji, domain: 'b') } | ||||
|     let!(:custom_emoji_2) { Fabricate(:custom_emoji, domain: nil, shortcode: 'hoge') } | ||||
| 
 | ||||
|     subject { described_class.new(params).results } | ||||
| 
 | ||||
|     context 'params have values' do | ||||
|       context 'local' do | ||||
|         let(:params) { { local: true } } | ||||
| 
 | ||||
|         it 'returns ActiveRecord::Relation' do | ||||
|           expect(subject).to be_kind_of(ActiveRecord::Relation) | ||||
|           expect(subject).to match_array([custom_emoji_2]) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'remote' do | ||||
|         let(:params) { { remote: true } } | ||||
| 
 | ||||
|         it 'returns ActiveRecord::Relation' do | ||||
|           expect(subject).to be_kind_of(ActiveRecord::Relation) | ||||
|           expect(subject).to match_array([custom_emoji_0, custom_emoji_1]) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'by_domain' do | ||||
|         let(:params) { { by_domain: 'a' } } | ||||
| 
 | ||||
|         it 'returns ActiveRecord::Relation' do | ||||
|           expect(subject).to be_kind_of(ActiveRecord::Relation) | ||||
|           expect(subject).to match_array([custom_emoji_0]) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'shortcode' do | ||||
|         let(:params) { { shortcode: 'hoge' } } | ||||
| 
 | ||||
|         it 'returns ActiveRecord::Relation' do | ||||
|           expect(subject).to be_kind_of(ActiveRecord::Relation) | ||||
|           expect(subject).to match_array([custom_emoji_2]) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'else' do | ||||
|         let(:params) { { else: 'else' } } | ||||
| 
 | ||||
|         it 'raises RuntimeError' do | ||||
|           expect do | ||||
|             subject | ||||
|           end.to raise_error(RuntimeError, /Unknown filter: else/) | ||||
|         end | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     context 'params without value' do | ||||
|       let(:params) { { hoge: nil } } | ||||
| 
 | ||||
|       it 'returns ActiveRecord::Relation' do | ||||
|         expect(subject).to be_kind_of(ActiveRecord::Relation) | ||||
|         expect(subject).to match_array([custom_emoji_0, custom_emoji_1, custom_emoji_2]) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user