123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # frozen_string_literal: true
- require 'rails_helper'
- RSpec.describe MoveService do
- subject { described_class.new.call(migration) }
- context 'with a valid migration record' do
- let(:migration) { Fabricate(:account_migration, account: source_account, target_account: target_account) }
- let(:source_account) { Fabricate(:account) }
- let(:target_account) { Fabricate(:account, also_known_as: [source_account_uri]) }
- it 'migrates the account to a new account' do
- expect { subject }
- .to change_source_moved_value
- .and process_local_updates
- .and distribute_updates
- .and distribute_move
- end
- end
- def source_account_uri
- ActivityPub::TagManager
- .instance
- .uri_for(source_account)
- end
- def change_source_moved_value
- change(source_account.reload, :moved_to_account)
- .from(nil)
- .to(target_account)
- end
- def process_local_updates
- enqueue_sidekiq_job(MoveWorker)
- .with(source_account.id, target_account.id)
- end
- def distribute_updates
- enqueue_sidekiq_job(ActivityPub::UpdateDistributionWorker)
- .with(source_account.id)
- end
- def distribute_move
- enqueue_sidekiq_job(ActivityPub::MoveDistributionWorker)
- .with(migration.id)
- end
- end
|