forked from berserker/microblog
Fix NoMethodError in StatusUpdateDistributionWorker (#17499)
* Add tests * Fix NoMethodError in StatusUpdateDistributionWorker * Fix testslocal
parent
63854bee6c
commit
da91b18a8b
2 changed files with 49 additions and 0 deletions
@ -0,0 +1,48 @@ |
||||
require 'rails_helper' |
||||
|
||||
describe ActivityPub::StatusUpdateDistributionWorker do |
||||
subject { described_class.new } |
||||
|
||||
let(:status) { Fabricate(:status, text: 'foo') } |
||||
let(:follower) { Fabricate(:account, protocol: :activitypub, inbox_url: 'http://example.com') } |
||||
|
||||
describe '#perform' do |
||||
before do |
||||
follower.follow!(status.account) |
||||
|
||||
status.snapshot! |
||||
status.text = 'bar' |
||||
status.edited_at = Time.now.utc |
||||
status.snapshot! |
||||
status.save! |
||||
end |
||||
|
||||
context 'with public status' do |
||||
before do |
||||
status.update(visibility: :public) |
||||
end |
||||
|
||||
it 'delivers to followers' do |
||||
expect(ActivityPub::DeliveryWorker).to receive(:push_bulk) do |items, &block| |
||||
expect(items.map(&block)).to match([[kind_of(String), status.account.id, 'http://example.com', anything]]) |
||||
end |
||||
|
||||
subject.perform(status.id) |
||||
end |
||||
end |
||||
|
||||
context 'with private status' do |
||||
before do |
||||
status.update(visibility: :private) |
||||
end |
||||
|
||||
it 'delivers to followers' do |
||||
expect(ActivityPub::DeliveryWorker).to receive(:push_bulk) do |items, &block| |
||||
expect(items.map(&block)).to match([[kind_of(String), status.account.id, 'http://example.com', anything]]) |
||||
end |
||||
|
||||
subject.perform(status.id) |
||||
end |
||||
end |
||||
end |
||||
end |
Loading…
Reference in new issue