1
0
Fork 0
forked from gitea/nas

Change: ローカルタイムラインを無効にしている時、/api/v1/timelines/publicタイムライン取得で「リモートユーザーのみ」指定も無効化 (#526)

* Change: ローカルタイムラインを無効にしている時、「リモートユーザーのみ」指定も無効化

* Fix test
This commit is contained in:
KMY(雪あすか) 2024-02-06 10:03:41 +09:00 committed by GitHub
parent 35db342d5e
commit 57341a82ac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 69 additions and 20 deletions

View file

@ -171,12 +171,11 @@ const Firehose = ({ feedType, multiColumn }) => {
<ColumnSettings />
</ColumnHeader>
<div className='account__section-headline'>
{enableLocalTimeline && (
<div className='account__section-headline'>
<NavLink exact to='/public/local'>
<FormattedMessage tagName='div' id='firehose.local' defaultMessage='This server' />
</NavLink>
)}
<NavLink exact to='/public/remote'>
<FormattedMessage tagName='div' id='firehose.remote' defaultMessage='Other servers' />
@ -186,6 +185,7 @@ const Firehose = ({ feedType, multiColumn }) => {
<FormattedMessage tagName='div' id='firehose.all' defaultMessage='All' />
</NavLink>
</div>
)}
<StatusListContainer
prepend={prependBanner}

View file

@ -53,7 +53,7 @@ class PublicFeed
end
def remote_only?
options[:remote] && !options[:local]
options[:remote] && !options[:local] && Setting.enable_local_timeline
end
def hide_local_users?

View file

@ -88,9 +88,21 @@ RSpec.describe PublicFeed do
expect(subject).to include(local_status.id)
end
it 'excludes public_unlisted statuses' do
it 'includes public_unlisted statuses' do
expect(subject).to include(public_unlisted_status.id)
end
context 'when local timeline is disabled' do
before do
Form::AdminSettings.new(enable_local_timeline: '0').save
end
it 'includes statuses' do
expect(subject).to include(remote_status.id)
expect(subject).to include(local_status.id)
expect(subject).to include(public_unlisted_status.id)
end
end
end
context 'with a viewer' do
@ -107,6 +119,18 @@ RSpec.describe PublicFeed do
it 'excludes public_unlisted statuses' do
expect(subject).to include(public_unlisted_status.id)
end
context 'when local timeline is disabled' do
before do
Form::AdminSettings.new(enable_local_timeline: '0').save
end
it 'includes statuses' do
expect(subject).to include(remote_status.id)
expect(subject).to include(local_status.id)
expect(subject).to include(public_unlisted_status.id)
end
end
end
end
@ -159,7 +183,6 @@ RSpec.describe PublicFeed do
it 'includes public_unlisted statuses' do
expect(subject).to include(public_unlisted_status.id)
end
end
context 'when local timeline is disabled' do
before do
@ -171,6 +194,7 @@ RSpec.describe PublicFeed do
end
end
end
end
context 'with a remote_only option set' do
subject { described_class.new(viewer, remote: true).get(20).map(&:id) }
@ -192,6 +216,18 @@ RSpec.describe PublicFeed do
it 'excludes public_unlisted statuses' do
expect(subject).to_not include(public_unlisted_status.id)
end
context 'when local timeline is disabled' do
before do
Form::AdminSettings.new(enable_local_timeline: '0').save
end
it 'includes statuses with local' do
expect(subject).to include(remote_status.id)
expect(subject).to include(local_status.id)
expect(subject).to include(public_unlisted_status.id)
end
end
end
context 'with a viewer' do
@ -205,6 +241,18 @@ RSpec.describe PublicFeed do
it 'excludes public_unlisted statuses' do
expect(subject).to_not include(public_unlisted_status.id)
end
context 'when local timeline is disabled' do
before do
Form::AdminSettings.new(enable_local_timeline: '0').save
end
it 'includes statuses with local' do
expect(subject).to include(remote_status.id)
expect(subject).to include(local_status.id)
expect(subject).to include(public_unlisted_status.id)
end
end
end
end

View file

@ -67,6 +67,7 @@ describe 'Public' do
context 'when local timeline is disabled' do
let(:ltl_enabled) { false }
let(:expected_statuses) { [local_status, remote_status, media_status] }
it_behaves_like 'a successful request to the public timeline'
end