Skip to content

Commit

Permalink
fix: Do not enqueue job if it is already enqueued (#5068)
Browse files Browse the repository at this point in the history
  • Loading branch information
pranavrajs committed Jul 19, 2022
1 parent 7fc0d16 commit cd5e0c5
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ class Enterprise::Api::V1::AccountsController < Api::BaseController
before_action :check_authorization

def subscription
Enterprise::CreateStripeCustomerJob.perform_later(@account) if stripe_customer_id.blank?
if stripe_customer_id.blank? && @account.custom_attributes['is_creating_customer'].blank?
@account.update(custom_attributes: { is_creating_customer: true })
Enterprise::CreateStripeCustomerJob.perform_later(@account)
end
head :no_content
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,17 @@
headers: admin.create_new_auth_token,
as: :json
end.to have_enqueued_job(Enterprise::CreateStripeCustomerJob).with(account)
expect(account.reload.custom_attributes).to eq({ 'is_creating_customer': true }.with_indifferent_access)
end

it 'does not enqueue a job if a job is already enqueued' do
account.update!(custom_attributes: { is_creating_customer: true })

expect do
post "/enterprise/api/v1/accounts/#{account.id}/subscription",
headers: admin.create_new_auth_token,
as: :json
end.not_to have_enqueued_job(Enterprise::CreateStripeCustomerJob).with(account)
end

it 'does not enqueues a job if customer id is present' do
Expand Down

0 comments on commit cd5e0c5

Please sign in to comment.