forked from asonix/mastodon
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.
36 lines
1.1 KiB
Ruby
36 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe PrecomputeFeedService do
|
|
subject { PrecomputeFeedService.new }
|
|
|
|
describe 'call' do
|
|
let(:account) { Fabricate(:account) }
|
|
it 'fills a user timeline with statuses' do
|
|
account = Fabricate(:account)
|
|
status = Fabricate(:status, account: account)
|
|
|
|
subject.call(account)
|
|
|
|
expect(Redis.current.zscore(FeedManager.instance.key(:home, account.id), status.id)).to be_within(0.1).of(status.id.to_f)
|
|
end
|
|
|
|
it 'does not raise an error even if it could not find any status' do
|
|
account = Fabricate(:account)
|
|
subject.call(account)
|
|
end
|
|
|
|
it 'filters statuses' do
|
|
account = Fabricate(:account)
|
|
muted_account = Fabricate(:account)
|
|
Fabricate(:mute, account: account, target_account: muted_account)
|
|
reblog = Fabricate(:status, account: muted_account)
|
|
status = Fabricate(:status, account: account, reblog: reblog)
|
|
|
|
subject.call(account)
|
|
|
|
expect(Redis.current.zscore(FeedManager.instance.key(:home, account.id), reblog.id)).to eq nil
|
|
end
|
|
end
|
|
end
|