Add basic coverage for UnfavouriteService class (#29329)
				
					
				
			This commit is contained in:
		
							
								
								
									
										36
									
								
								spec/services/unfavourite_service_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								spec/services/unfavourite_service_spec.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe UnfavouriteService do
 | 
			
		||||
  describe '#call' do
 | 
			
		||||
    context 'with a favourited status' do
 | 
			
		||||
      let(:status) { Fabricate(:status, account: account) }
 | 
			
		||||
      let!(:favourite) { Fabricate(:favourite, status: status) }
 | 
			
		||||
 | 
			
		||||
      context 'when the status account is local' do
 | 
			
		||||
        let(:account) { Fabricate(:account, domain: nil) }
 | 
			
		||||
 | 
			
		||||
        it 'destroys the favourite' do
 | 
			
		||||
          subject.call(favourite.account, status)
 | 
			
		||||
 | 
			
		||||
          expect { favourite.reload }
 | 
			
		||||
            .to raise_error(ActiveRecord::RecordNotFound)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      context 'when the status account is a remote activitypub account' do
 | 
			
		||||
        let(:account) { Fabricate(:account, domain: 'host.example', protocol: :activitypub) }
 | 
			
		||||
 | 
			
		||||
        it 'destroys the favourite and sends a notification' do
 | 
			
		||||
          subject.call(favourite.account, status)
 | 
			
		||||
 | 
			
		||||
          expect { favourite.reload }
 | 
			
		||||
            .to raise_error(ActiveRecord::RecordNotFound)
 | 
			
		||||
          expect(ActivityPub::DeliveryWorker)
 | 
			
		||||
            .to have_enqueued_sidekiq_job(anything, favourite.account.id, status.account.inbox_url)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user