parent
e5ab4a3eb2
commit
80be9b38a0
2 changed files with 38 additions and 1 deletions
|
@ -25,7 +25,10 @@ class ReblogService < BaseService
|
||||||
else
|
else
|
||||||
options[:visibility] ||
|
options[:visibility] ||
|
||||||
(account.user&.setting_default_reblog_privacy == 'unset' ? account.user&.setting_default_privacy : account.user&.setting_default_reblog_privacy)
|
(account.user&.setting_default_reblog_privacy == 'unset' ? account.user&.setting_default_privacy : account.user&.setting_default_reblog_privacy)
|
||||||
end
|
end.to_s
|
||||||
|
|
||||||
|
visibility = 'public_unlisted' if !Setting.enable_public_visibility && visibility == 'public'
|
||||||
|
visibility = 'unlisted' if !Setting.enable_public_unlisted_visibility && visibility == 'public_unlisted'
|
||||||
|
|
||||||
reblog = account.statuses.create!(reblog: reblogged_status, text: '', visibility: visibility, rate_limit: options[:with_rate_limit])
|
reblog = account.statuses.create!(reblog: reblogged_status, text: '', visibility: visibility, rate_limit: options[:with_rate_limit])
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,10 @@ RSpec.describe ReblogService, type: :service do
|
||||||
subject.call(alice, status, visibility: reblog_visibility)
|
subject.call(alice, status, visibility: reblog_visibility)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'a simple case reblogs publicly' do
|
||||||
|
expect(status.reblogs.first.visibility).to eq 'public'
|
||||||
|
end
|
||||||
|
|
||||||
describe 'boosting privately' do
|
describe 'boosting privately' do
|
||||||
let(:reblog_visibility) { :private }
|
let(:reblog_visibility) { :private }
|
||||||
|
|
||||||
|
@ -34,6 +38,36 @@ RSpec.describe ReblogService, type: :service do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when public visibility is disabled' do
|
||||||
|
subject { described_class.new }
|
||||||
|
|
||||||
|
let(:status) { Fabricate(:status, account: alice, visibility: :public) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
Setting.enable_public_visibility = false
|
||||||
|
subject.call(alice, status, visibility: :public)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'reblogs as public unlisted' do
|
||||||
|
expect(status.reblogs.first.visibility).to eq 'public_unlisted'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when public unlisted visibility is disabled' do
|
||||||
|
subject { described_class.new }
|
||||||
|
|
||||||
|
let(:status) { Fabricate(:status, account: alice, visibility: :public) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
Setting.enable_public_unlisted_visibility = false
|
||||||
|
subject.call(alice, status, visibility: :public_unlisted)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'reblogs as public unlisted' do
|
||||||
|
expect(status.reblogs.first.visibility).to eq 'unlisted'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when the reblogged status is discarded in the meantime' do
|
context 'when the reblogged status is discarded in the meantime' do
|
||||||
let(:status) { Fabricate(:status, account: alice, visibility: :public, text: 'discard-status-text') }
|
let(:status) { Fabricate(:status, account: alice, visibility: :public, text: 'discard-status-text') }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue