diff --git a/app/jobs/create_account_inline_job.rb b/app/jobs/create_account_inline_job.rb new file mode 100644 index 000000000..d590b672f --- /dev/null +++ b/app/jobs/create_account_inline_job.rb @@ -0,0 +1,8 @@ +class CreateAccountInlineJob < ActiveJob::Base + def perform(account) + CreateSolrCollectionJob.perform_now(account) + CreateFcrepoEndpointJob.perform_now(account) + CreateRedisNamespaceJob.perform_now(account) + CreateDefaultAdminSetJob.perform_now + end +end diff --git a/app/services/create_account.rb b/app/services/create_account.rb index afe423621..e5649a5f4 100644 --- a/app/services/create_account.rb +++ b/app/services/create_account.rb @@ -36,10 +36,7 @@ def create_tenant # specifically Solr and Fedora, and creation of the default Admin # Set. def create_account_inline - CreateSolrCollectionJob.perform_now(account) - CreateFcrepoEndpointJob.perform_now(account) - CreateRedisNamespaceJob.perform_now(account) - CreateDefaultAdminSetJob.perform_now + CreateAccountInlineJob.perform_later(account) end def create_solr_collection diff --git a/spec/jobs/create_account_inline_job_spec.rb b/spec/jobs/create_account_inline_job_spec.rb new file mode 100644 index 000000000..5ea1abdbd --- /dev/null +++ b/spec/jobs/create_account_inline_job_spec.rb @@ -0,0 +1,13 @@ +RSpec.describe CreateAccountInlineJob do + let(:account) { FactoryGirl.create(:account) } + + describe '#perform' do + it 'calls four other jobs synchronously' do + expect(CreateSolrCollectionJob).to receive(:perform_now).with(account) + expect(CreateFcrepoEndpointJob).to receive(:perform_now).with(account) + expect(CreateRedisNamespaceJob).to receive(:perform_now).with(account) + expect(CreateDefaultAdminSetJob).to receive(:perform_now) + described_class.perform_now(account) + end + end +end diff --git a/spec/services/create_account_spec.rb b/spec/services/create_account_spec.rb index 51a3eb206..e94143113 100644 --- a/spec/services/create_account_spec.rb +++ b/spec/services/create_account_spec.rb @@ -40,11 +40,8 @@ end describe '#create_account_inline' do - it 'calls four jobs inline' do - expect(CreateSolrCollectionJob).to receive(:perform_now).with(account) - expect(CreateFcrepoEndpointJob).to receive(:perform_now).with(account) - expect(CreateRedisNamespaceJob).to receive(:perform_now).with(account) - expect(CreateDefaultAdminSetJob).to receive(:perform_now) + it 'queues a background job' do + expect(CreateAccountInlineJob).to receive(:perform_later).with(account) subject.create_account_inline end end