Change move handler to carry blocks over (#14144)
* Change move handler to carry blocks and mutes over When user A blocks user B and B moves to a new account C, make A block C accordingly. Note that it only works if A's instance is aware of the Move, that is, if B is on A's instance or has followers there. * Also notify instances with known people blocking you when moving * Add automatic account notes when blocking/muting an account that had no notemain
parent
411bf188bb
commit
35cedc922c
@ -1,6 +1,6 @@
|
||||
Fabricator(:account_migration) do
|
||||
account
|
||||
target_account
|
||||
target_account { |attrs| Fabricate(:account, also_known_as: [ActivityPub::TagManager.instance.uri_for(attrs[:account])]) }
|
||||
acct { |attrs| attrs[:target_account].acct }
|
||||
followers_count 1234
|
||||
acct 'test@example.com'
|
||||
end
|
||||
|
@ -0,0 +1,22 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe ActivityPub::MoveDistributionWorker do
|
||||
subject { described_class.new }
|
||||
|
||||
let(:migration) { Fabricate(:account_migration) }
|
||||
let(:follower) { Fabricate(:account, protocol: :activitypub, inbox_url: 'http://example.com') }
|
||||
let(:blocker) { Fabricate(:account, protocol: :activitypub, inbox_url: 'http://example2.com') }
|
||||
|
||||
describe '#perform' do
|
||||
before do
|
||||
allow(ActivityPub::DeliveryWorker).to receive(:push_bulk)
|
||||
follower.follow!(migration.account)
|
||||
blocker.block!(migration.account)
|
||||
end
|
||||
|
||||
it 'delivers to followers and known blockers' do
|
||||
subject.perform(migration.id)
|
||||
expect(ActivityPub::DeliveryWorker).to have_received(:push_bulk).with(['http://example.com', 'http://example2.com'])
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in new issue