Reduce extra round trips in `AP::SynchronizeFollowersService` spec (#31044)

shrike
Matt Jankowski 2024-07-17 03:33:08 -04:00 committed by GitHub
parent 81877e7950
commit f5e90f3de3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 12 additions and 19 deletions

View File

@ -13,11 +13,9 @@ RSpec.describe ActivityPub::SynchronizeFollowersService do
let(:collection_uri) { 'http://example.com/partial-followers' }
let(:items) do
[
ActivityPub::TagManager.instance.uri_for(alice),
ActivityPub::TagManager.instance.uri_for(eve),
ActivityPub::TagManager.instance.uri_for(mallory),
]
[alice, eve, mallory].map do |account|
ActivityPub::TagManager.instance.uri_for(account)
end
end
let(:payload) do
@ -40,20 +38,15 @@ RSpec.describe ActivityPub::SynchronizeFollowersService do
subject.call(actor, collection_uri)
end
it 'keeps expected followers' do
expect(alice.following?(actor)).to be true
end
it 'removes local followers not in the remote list' do
expect(bob.following?(actor)).to be false
end
it 'converts follow requests to follow relationships when they have been accepted' do
expect(mallory.following?(actor)).to be true
end
it 'sends an Undo Follow to the actor' do
expect(ActivityPub::DeliveryWorker).to have_received(:perform_async).with(anything, eve.id, actor.inbox_url)
it 'maintains following records and sends Undo Follow to actor' do
expect(alice)
.to be_following(actor) # Keep expected followers
expect(bob)
.to_not be_following(actor) # Remove local followers not in remote list
expect(mallory)
.to be_following(actor) # Convert follow request to follow when accepted
expect(ActivityPub::DeliveryWorker)
.to have_received(:perform_async).with(anything, eve.id, actor.inbox_url) # Send Undo Follow to actor
end
end