mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-21 08:39:44 +00:00
Add basic coverage for MoveService
class (#29301)
This commit is contained in:
parent
baa23738a8
commit
b0064ddda7
48
spec/services/move_service_spec.rb
Normal file
48
spec/services/move_service_spec.rb
Normal 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
|
Loading…
Reference in a new issue