about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/workers/regeneration_worker.rb3
-rw-r--r--spec/workers/regeneration_worker_spec.rb26
2 files changed, 28 insertions, 1 deletions
diff --git a/app/workers/regeneration_worker.rb b/app/workers/regeneration_worker.rb
index 0cc6b668c..8cee21ae1 100644
--- a/app/workers/regeneration_worker.rb
+++ b/app/workers/regeneration_worker.rb
@@ -7,7 +7,8 @@ class RegenerationWorker
 
   def perform(account_id, _ = :home)
     account = Account.find(account_id)
-
     PrecomputeFeedService.new.call(account)
+  rescue ActiveRecord::RecordNotFound
+    true
   end
 end
diff --git a/spec/workers/regeneration_worker_spec.rb b/spec/workers/regeneration_worker_spec.rb
new file mode 100644
index 000000000..c6bdfa0e5
--- /dev/null
+++ b/spec/workers/regeneration_worker_spec.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe RegenerationWorker do
+  subject { described_class.new }
+
+  describe 'perform' do
+    let(:account) { Fabricate(:account) }
+
+    it 'calls the precompute feed service for the account' do
+      service = double(call: nil)
+      allow(PrecomputeFeedService).to receive(:new).and_return(service)
+      result = subject.perform(account.id)
+
+      expect(result).to be_nil
+      expect(service).to have_received(:call).with(account)
+    end
+
+    it 'fails when account does not exist' do
+      result = subject.perform('aaa')
+
+      expect(result).to eq(true)
+    end
+  end
+end