Improve spec coverage for collection of workers/ classes (#27874)
		
	This commit is contained in:
		
					parent
					
						
							
								0a6ec048a8
							
						
					
				
			
			
				commit
				
					
						155fb84141
					
				
			
		
					 16 changed files with 460 additions and 8 deletions
				
			
		
							
								
								
									
										52
									
								
								spec/workers/account_refresh_worker_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								spec/workers/account_refresh_worker_spec.rb
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,52 @@ | |||
| # frozen_string_literal: true | ||||
| 
 | ||||
| require 'rails_helper' | ||||
| 
 | ||||
| describe AccountRefreshWorker do | ||||
|   let(:worker) { described_class.new } | ||||
|   let(:service) { instance_double(ResolveAccountService, call: true) } | ||||
| 
 | ||||
|   describe '#perform' do | ||||
|     before do | ||||
|       allow(ResolveAccountService).to receive(:new).and_return(service) | ||||
|     end | ||||
| 
 | ||||
|     context 'when account does not exist' do | ||||
|       it 'returns immediately without processing' do | ||||
|         worker.perform(123_123_123) | ||||
| 
 | ||||
|         expect(service).to_not have_received(:call) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     context 'when account exists' do | ||||
|       context 'when account does not need refreshing' do | ||||
|         let(:account) { Fabricate(:account, last_webfingered_at: recent_webfinger_at) } | ||||
| 
 | ||||
|         it 'returns immediately without processing' do | ||||
|           worker.perform(account.id) | ||||
| 
 | ||||
|           expect(service).to_not have_received(:call) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'when account needs refreshing' do | ||||
|         let(:account) { Fabricate(:account, last_webfingered_at: outdated_webfinger_at) } | ||||
| 
 | ||||
|         it 'schedules an account update' do | ||||
|           worker.perform(account.id) | ||||
| 
 | ||||
|           expect(service).to have_received(:call) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       def recent_webfinger_at | ||||
|         (Account::BACKGROUND_REFRESH_INTERVAL - 3.days).ago | ||||
|       end | ||||
| 
 | ||||
|       def outdated_webfinger_at | ||||
|         (Account::BACKGROUND_REFRESH_INTERVAL + 3.days).ago | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue