about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/services/precompute_feed_service.rb2
-rw-r--r--spec/services/precompute_feed_service_spec.rb5
2 files changed, 6 insertions, 1 deletions
diff --git a/app/services/precompute_feed_service.rb b/app/services/precompute_feed_service.rb
index e2f6ff0cb..a32ba1dae 100644
--- a/app/services/precompute_feed_service.rb
+++ b/app/services/precompute_feed_service.rb
@@ -16,7 +16,7 @@ class PrecomputeFeedService < BaseService
     pairs = statuses.reverse_each.map(&method(:process_status))
 
     redis.pipelined do
-      redis.zadd(account_home_key, pairs)
+      redis.zadd(account_home_key, pairs) if pairs.any?
       redis.del("account:#{@account.id}:regeneration")
     end
   end
diff --git a/spec/services/precompute_feed_service_spec.rb b/spec/services/precompute_feed_service_spec.rb
index 72235a966..e2294469c 100644
--- a/spec/services/precompute_feed_service_spec.rb
+++ b/spec/services/precompute_feed_service_spec.rb
@@ -18,5 +18,10 @@ RSpec.describe PrecomputeFeedService do
 
       expect(Redis.current.zscore(FeedManager.instance.key(:home, account.id), reblog.id)).to eq status.id
     end
+
+    it 'does not raise an error even if it could not find any status' do
+      account = Fabricate(:account)
+      subject.call(account)
+    end
   end
 end