CluPilotCloud/tests/Feature/Billing
nexxo ef4be9c518 ApplyPlanChange lehnt Wechsel auf interne Pakete ab statt sie ewig zu parken
Kippt die Zielfamilie eines gebuchten oder bezahlten Wechsels zwischen dem
Klick und der Ausführung auf internal, fand MoveStripeSubscriptionPrice nie
einen Stripe-Preis und parkte den Fehlschlag in stripe_price_sync – wo der
stündliche Sweep ihn für immer wiederholte, solange die Familie intern
bleibt. Der neue Deckel sitzt vor der Transaktion (Vertrag, Register und
Maschine bleiben unangetastet) und greift nur, wenn der Vertrag Stripe
überhaupt abrechnet; erkannt am internal-Flag der Zielfamilie statt an
fehlender Preis-Auflösbarkeit, weil letzteres auch den gewöhnlichen,
selbstheilenden Fall "noch nicht synchronisiert" träfe, den der bestehende
Park-und-Wiederhole-Pfad ausdrücklich abdecken soll.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 19:08:55 +02:00
..
AddonCancellationTest.php Ask whether they are a consumer, and let one change their mind 2026-07-29 21:06:06 +02:00
AddonEntitlementTest.php Refuse the sale instead of reaching Stripe without a key 2026-07-30 11:58:01 +02:00
ApplyPlanChangeTest.php Die neue Leiter: Start 39, Team 79, Business 139 2026-08-01 17:05:58 +02:00
ArchivePullAccessTest.php Stripe-Client: offene Rechnungen listen und einziehen 2026-07-31 20:04:09 +02:00
CustomDomainAccessTest.php Die neue Leiter: Start 39, Team 79, Business 139 2026-08-01 17:05:58 +02:00
CustomerTypeTest.php Ask whether they are a consumer, and let one change their mind 2026-07-29 21:06:06 +02:00
DunningControlsTest.php Mahnwesen: Einstellungen und die zwei Eingriffe von Hand 2026-07-31 22:43:52 +02:00
DunningFixRoundTest.php Zweite Fix-Runde: Regressionen der ersten (Trockenlauf, Doppelmail, Bestand, Isolierung) 2026-07-31 23:02:13 +02:00
DunningFoundationTest.php Mahnwesen: Fall, Zeitplan und Gebuehrenstufen 2026-07-31 21:51:42 +02:00
DunningMailTest.php Fix-Runde: Reichweite der Sperre, keine doppelte Gebuehr, verlorene Nachricht 2026-07-31 22:57:56 +02:00
DunningRunTest.php Mahnwesen: Tageslauf mit Gebuehrenrechnungen 2026-07-31 22:13:52 +02:00
DunningSuspensionTest.php Fix-Runde: Reichweite der Sperre, keine doppelte Gebuehr, verlorene Nachricht 2026-07-31 22:57:56 +02:00
ExportTargetFormTest.php Stripe-Client: offene Rechnungen listen und einziehen 2026-07-31 20:04:09 +02:00
FinanceSettingsTest.php Stripe-Client: offene Rechnungen listen und einziehen 2026-07-31 20:04:09 +02:00
GrantAddonTest.php Let a subscription or add-on be opened for free, with who and why on the row 2026-07-29 12:41:06 +02:00
GrantInvoiceTest.php Skip the invoice for a full gift, keep it out of revenue, hide its price 2026-07-29 12:41:32 +02:00
GrantSubscriptionTest.php Let a subscription or add-on be opened for free, with who and why on the row 2026-07-29 12:41:06 +02:00
InternalPlanTest.php Die neue Leiter: Start 39, Team 79, Business 139 2026-08-01 17:05:58 +02:00
InvoiceArchiveTest.php Stripe-Client: offene Rechnungen listen und einziehen 2026-07-31 20:04:09 +02:00
InvoiceListTest.php Stripe-Client: offene Rechnungen listen und einziehen 2026-07-31 20:04:09 +02:00
InvoiceMailTest.php Stripe-Client: offene Rechnungen listen und einziehen 2026-07-31 20:04:09 +02:00
InvoiceMathTest.php Print every line at full price and take the discount off once, in euros 2026-07-29 01:59:56 +02:00
InvoiceNumberTest.php Lay the foundation for self-issued invoices: series, numbers, frozen documents 2026-07-29 00:57:06 +02:00
IssueInvoiceTest.php Stripe-Client: offene Rechnungen listen und einziehen 2026-07-31 20:04:09 +02:00
NewPlanLadderTest.php Schalter je Paket, ehrliche Statusanzeige, Reste der alten Leiter 2026-08-01 17:53:06 +02:00
OpenInvoiceClientTest.php Offene Rechnungen bis zum Ende blaettern (Codex P2) 2026-07-31 20:58:21 +02:00
PackageCancellationTest.php Take the address by field, fix the customer type, ask why they leave 2026-07-30 16:41:32 +02:00
PaidOrderFulfilmentTest.php Refuse the sale instead of reaching Stripe without a key 2026-07-30 11:58:01 +02:00
PaymentMethodClientTest.php Stripe-Client: SetupIntent und Vorgabe-Zahlungsmittel 2026-07-31 20:01:14 +02:00
PaymentProblemsTest.php R20: Begruendung im Modal, und der Waechter sieht jetzt auch Listenzeilen 2026-07-31 22:09:05 +02:00
PendingPlanChangeTest.php Refuse the sale instead of reaching Stripe without a key 2026-07-30 11:58:01 +02:00
PlanCatalogueTest.php Die neue Leiter: Start 39, Team 79, Business 139 2026-08-01 17:05:58 +02:00
PlanChangeTest.php Die neue Leiter: Start 39, Team 79, Business 139 2026-08-01 17:05:58 +02:00
PortalInvoicesTest.php Release v1.3.83 — Fortschritt zeigte Übersetzungsschlüssel 2026-08-01 02:08:28 +02:00
ProofRegisterTest.php Die neue Leiter: Start 39, Team 79, Business 139 2026-08-01 17:05:58 +02:00
RenewalInvoiceTest.php Bill a booked module every month, and put it on the invoice 2026-07-29 20:22:02 +02:00
ResolveInModalTest.php R20: Begruendung im Modal, und der Waechter sieht jetzt auch Listenzeilen 2026-07-31 22:09:05 +02:00
ReverseChargePriceTest.php Interne Pakete gehören nicht nach Stripe 2026-08-01 18:31:37 +02:00
SetupFeeTest.php Die neue Leiter: Start 39, Team 79, Business 139 2026-08-01 17:05:58 +02:00
StorageAllowanceTest.php Die neue Leiter: Start 39, Team 79, Business 139 2026-08-01 17:05:58 +02:00
StoragePackCapacityTest.php Kapazitaetspruefung hinter den Idempotenz-Kurzschluss verschoben 2026-08-01 14:18:01 +02:00
StoragePackLimitTest.php Der Deckel hielt außerhalb der Transaktion, das Fenster versprach einen Block zu viel 2026-08-01 18:53:00 +02:00
StoragePackPricingTest.php Die neue Leiter: Start 39, Team 79, Business 139 2026-08-01 17:05:58 +02:00
StoragePackSizeTest.php Die Packungsgroesse steht auf der Buchung, nicht in der Konfiguration 2026-08-01 12:25:30 +02:00
StripeAddonBillingTest.php Zusatzspeicher: 20 GB fuer 15 Euro, hoechstens drei, nicht bei Enterprise 2026-08-01 15:09:02 +02:00
StripeBillingTest.php Interne Pakete gehören nicht nach Stripe 2026-08-01 18:31:37 +02:00
StripeCatalogueModeTest.php Never tell anyone to delete a catalogue their contracts bill on 2026-07-30 17:30:56 +02:00
StripeIdempotencyKeyTest.php Merge main into the host-takeover branch 2026-07-30 21:21:45 +02:00
StripePlanChangeTest.php ApplyPlanChange lehnt Wechsel auf interne Pakete ab statt sie ewig zu parken 2026-08-01 19:08:55 +02:00
StripePriceAdoptionTest.php Say what the sweep did not check, before telling anyone to archive 2026-07-30 19:12:57 +02:00
StripeProductAdoptionTest.php Interne Pakete gehören nicht nach Stripe 2026-08-01 18:31:37 +02:00
SweepOrphanPricesTest.php Name the recurring filter, and stop the spec contradicting itself 2026-07-30 19:24:18 +02:00
VatIdVerificationTest.php Ask the EU register whether a VAT number is real 2026-07-29 22:42:29 +02:00
WithdrawalTest.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
YearlyTermTest.php Die neue Leiter: Start 39, Team 79, Business 139 2026-08-01 17:05:58 +02:00