Skip to content

Commit b1e8dc2

Browse files
author
Kurt
committed
set incomplete status when subscription payment_behavior is default_incomplete
1 parent b0ee38d commit b1e8dc2

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

lib/stripe_mock/request_handlers/subscriptions.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@ def create_subscription(route, method_url, params, headers)
132132
subscription[:status] = 'trialing'
133133
end
134134

135+
if params[:payment_behavior] == 'default_incomplete'
136+
subscription[:status] = 'incomplete'
137+
end
138+
135139
if params[:cancel_at_period_end]
136140
subscription[:cancel_at_period_end] = true
137141
subscription[:canceled_at] = Time.now.utc.to_i
@@ -294,6 +298,7 @@ def verify_card_present(customer, plan, subscription, params={})
294298
return if customer[:invoice_settings][:default_payment_method]
295299
return if customer[:trial_end]
296300
return if params[:trial_end]
301+
return if params[:payment_behavior] == 'default_incomplete'
297302
return if subscription[:default_payment_method]
298303

299304
plan_trial_period_days = plan[:trial_period_days] || 0

spec/shared_stripe_examples/subscription_examples.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,18 @@
290290
expect(customer.subscriptions.count).to eq(0)
291291
end
292292

293+
it "creates a subscription when subscription's payment_behavior is default_incomplete" do
294+
plan = stripe_helper.create_plan(id: 'enterprise', product: product.id, amount: 499)
295+
customer = Stripe::Customer.create(id: 'cardless')
296+
297+
sub = Stripe::Subscription.create({ plan: plan.id, customer: customer.id, payment_behavior: 'default_incomplete' })
298+
customer = Stripe::Customer.retrieve('cardless')
299+
300+
expect(customer.subscriptions.count).to eq(1)
301+
expect(customer.subscriptions.data.first.id).to eq(sub.id)
302+
expect(customer.subscriptions.data.first.status).to eq('incomplete')
303+
end
304+
293305
it "throws an error when subscribing a customer with no card" do
294306
plan = stripe_helper.create_plan(id: 'enterprise', product: product.id, amount: 499)
295307
customer = Stripe::Customer.create(id: 'cardless')

0 commit comments

Comments
 (0)