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