|
tests / pest (push) Failing after 8m6s
Details
tests / assets (push) Successful in 21s
Details
tests / release (push) Has been skipped
Details
PlanChange could say what a move would cost and whether it was allowed, and that was all it could do. Billing::purchase() wrote an upgrade order and nothing ever consumed it: same snapshot, same machine, same quota. A customer could pay for a bigger package and receive nothing. ApplyPlanChange is now the single place a change lands — it moves the contract onto the target's current version, writes one register row, settles the custom domain, and starts a run that resizes the machine. Applying the same order twice is a no-op, enforced by a unique event key rather than by a check two callers could both pass. Two things a plan change must not do, and now does not. A disk is never shrunk — Proxmox cannot, so the QUOTA shrinks instead, which is what was sold anyway. And a live machine is never rebooted as a side effect: cores and RAM are written, and where they need a restart the instance says so where an operator and the customer can both see it. The storage allowance also joins the build pipeline. ApplyStorageQuota was written for plan changes and ran only there, so a brand-new customer still got no quota at all — quota_gb reached the instance row and stopped, and every package delivered the whole disk. The test guarding that pipeline only counted its steps, which is how a list missing the one step that makes a package's storage real stayed green for its whole life. It now names the step. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| CustomerDataModelTest.php | ||
| CustomerProvisioningEndToEndTest.php | ||
| CustomerStepBaseTest.php | ||
| CustomerStepsTest.php | ||
| DataModelTest.php | ||
| HostOnboardingEndToEndTest.php | ||
| HostStepsTest.php | ||
| LiveProgressTest.php | ||
| PipelineRegistryTest.php | ||
| PruneHostDnsTest.php | ||
| RunRunnerTest.php | ||
| ServicesTest.php | ||
| StripeWebhookTest.php | ||
| SubscriptionSnapshotTest.php | ||
| TickProvisioningTest.php | ||