Do not push status to feed if its reblog is already inserted (#6488)
A complemental change for precompute_feed_service_spec.rb also fixes its random failure which is caused by the Snowlake randomization of the order of an original status and its reblog.
This commit is contained in:
parent
e668180044
commit
f8f0572ee0
4 changed files with 45 additions and 7 deletions
|
@ -157,7 +157,7 @@ RSpec.describe FeedManager do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#push' do
|
||||
describe '#push_to_home' do
|
||||
it 'trims timelines if they will have more than FeedManager::MAX_ITEMS' do
|
||||
account = Fabricate(:account)
|
||||
status = Fabricate(:status)
|
||||
|
@ -248,6 +248,39 @@ RSpec.describe FeedManager do
|
|||
expect(FeedManager.instance.push_to_home(account, reblogs.last)).to be true
|
||||
end
|
||||
end
|
||||
|
||||
it "does not push when the given status's reblog is already inserted" do
|
||||
account = Fabricate(:account)
|
||||
reblog = Fabricate(:status)
|
||||
status = Fabricate(:status, reblog: reblog)
|
||||
FeedManager.instance.push_to_home(account, status)
|
||||
|
||||
expect(FeedManager.instance.push_to_home(account, reblog)).to eq false
|
||||
end
|
||||
end
|
||||
|
||||
describe '#push_to_list' do
|
||||
it "does not push when the given status's reblog is already inserted" do
|
||||
list = Fabricate(:list)
|
||||
reblog = Fabricate(:status)
|
||||
status = Fabricate(:status, reblog: reblog)
|
||||
FeedManager.instance.push_to_list(list, status)
|
||||
|
||||
expect(FeedManager.instance.push_to_list(list, reblog)).to eq false
|
||||
end
|
||||
end
|
||||
|
||||
describe '#merge_into_timeline' do
|
||||
it "does not push source account's statuses whose reblogs are already inserted" do
|
||||
account = Fabricate(:account, id: 0)
|
||||
reblog = Fabricate(:status)
|
||||
status = Fabricate(:status, reblog: reblog)
|
||||
FeedManager.instance.push_to_home(account, status)
|
||||
|
||||
FeedManager.instance.merge_into_timeline(account, reblog.account)
|
||||
|
||||
expect(Redis.current.zscore("feed:home:0", reblog.id)).to eq nil
|
||||
end
|
||||
end
|
||||
|
||||
describe '#trim' do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue