return reblog unless reblog.nil?
- reblog = account.statuses.create!(reblog: reblogged_status, text: '', visibility: options[:visibility] || account.user&.setting_default_privacy)
+ visibility = options[:visibility] || account.user&.setting_default_privacy
+ visibility = reblogged_status.visibility if reblogged_status.hidden?
+ reblog = account.statuses.create!(reblog: reblogged_status, text: '', visibility: visibility)
DistributionWorker.perform_async(reblog.id)
Pubsubhubbub::DistributionWorker.perform_async(reblog.stream_entry.id)
let(:alice) { Fabricate(:account, username: 'alice') }
context 'creates a reblog with appropriate visibility' do
- let(:bob) { Fabricate(:account, username: 'bob') }
let(:visibility) { :public }
let(:reblog_visibility) { :public }
- let(:status) { Fabricate(:status, account: bob, visibility: visibility) }
+ let(:status) { Fabricate(:status, account: alice, visibility: visibility) }
subject { ReblogService.new }
expect(status.reblogs.first.visibility).to eq 'private'
end
end
+
+ describe 'public reblogs of private toots should remain private' do
+ let(:visibility) { :private }
+ let(:reblog_visibility) { :public }
+
+ it 'reblogs privately' do
+ expect(status.reblogs.first.visibility).to eq 'private'
+ end
+ end
end
context 'OStatus' do