Add basic coverage for `MoveService` class (#29301)
This commit is contained in:
parent
baa23738a8
commit
b0064ddda7
|
@ -0,0 +1,48 @@
|
|||
# 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
|
Loading…
Reference in New Issue