From 8cece9d963f0bfb17972bfae16c80c755810e7bc Mon Sep 17 00:00:00 2001 From: Jun Date: Thu, 20 Nov 2025 17:27:11 +1000 Subject: [PATCH 1/3] add a failing test --- tests/Feature/SubscriptionsTest.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/Feature/SubscriptionsTest.php b/tests/Feature/SubscriptionsTest.php index 064ced14..b3c48c7f 100644 --- a/tests/Feature/SubscriptionsTest.php +++ b/tests/Feature/SubscriptionsTest.php @@ -975,4 +975,24 @@ public function test_invoice_subscription_directly() $this->assertSame('paid', $invoice->status); $this->assertSame(2000, $invoice->total); } + + public function test_updating_single_price_subscription_quantity_updates_the_quantity_of_the_subscription_item(){ + $user = $this->createCustomer('invoice_subscription_directly'); + + $subscription = $user->newSubscription('main', static::$priceId) + ->create('pm_card_visa'); + + $subscription->updateQuantity(2); + + $this->assertDatabaseHas('subscriptions', [ + 'id' => $subscription->id, + 'quantity' => 2, + ]); + + $this->assertDatabaseHas('subscription_items', [ + 'subscription_id' => $subscription->id, + 'stripe_price' => static::$priceId, + 'quantity' => 2, + ]); + } } From 5ea035fd43369aa6662a3c6860bf62af168944fd Mon Sep 17 00:00:00 2001 From: Jun Date: Thu, 20 Nov 2025 17:27:17 +1000 Subject: [PATCH 2/3] fix --- src/Subscription.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Subscription.php b/src/Subscription.php index ec3a2630..8c1a01f0 100644 --- a/src/Subscription.php +++ b/src/Subscription.php @@ -542,6 +542,12 @@ public function updateQuantity(int $quantity, ?string $price = null) 'quantity' => $stripeSubscription->quantity, ])->save(); + $singleSubscriptionItem = $this->items()->firstOrFail(); + + $singleSubscriptionItem->fill([ + 'quantity' => $stripeSubscription->quantity, + ])->save(); + $this->handlePaymentFailure($this); return $this; From b2210223c8e74b669c6bb2a763b92c2bae82131f Mon Sep 17 00:00:00 2001 From: Jun Date: Thu, 20 Nov 2025 17:40:01 +1000 Subject: [PATCH 3/3] styling --- tests/Feature/SubscriptionsTest.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/Feature/SubscriptionsTest.php b/tests/Feature/SubscriptionsTest.php index b3c48c7f..8adc75e1 100644 --- a/tests/Feature/SubscriptionsTest.php +++ b/tests/Feature/SubscriptionsTest.php @@ -976,9 +976,10 @@ public function test_invoice_subscription_directly() $this->assertSame(2000, $invoice->total); } - public function test_updating_single_price_subscription_quantity_updates_the_quantity_of_the_subscription_item(){ + public function test_updating_single_price_subscription_quantity_updates_the_quantity_of_the_subscription_item() + { $user = $this->createCustomer('invoice_subscription_directly'); - + $subscription = $user->newSubscription('main', static::$priceId) ->create('pm_card_visa'); @@ -988,7 +989,7 @@ public function test_updating_single_price_subscription_quantity_updates_the_qua 'id' => $subscription->id, 'quantity' => 2, ]); - + $this->assertDatabaseHas('subscription_items', [ 'subscription_id' => $subscription->id, 'stripe_price' => static::$priceId,