Add basic coverage for `MoveService` class (#29301)

pull/2647/head
Matt Jankowski 2024-02-23 04:59:29 -05:00 committed by GitHub
parent baa23738a8
commit b0064ddda7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 48 additions and 0 deletions

View File

@ -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