CluPilotCloud/app/Services/Stripe
nexxo 4b99c6d5c6 Make the fake behave like Stripe where it matters
Three ways it did not. It replaced metadata where Stripe merges — and merging is
the property AdoptStripePrice's "write only when it differs" comparison is built
around. It handed metadata back uncast where the wire returns strings, so a test
could pass on an int that production's strict === rejects forever. And a tie on
`created` fell to insertion order, so two runs could adopt different prices.

Paging now throws instead of stopping when Stripe says there is another page and
the last item carries no id. invoiceLines() stops there and it costs a short
document; here it costs an unseen orphan and a second live price for one figure.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 17:14:46 +02:00
..
FakeStripeClient.php Make the fake behave like Stripe where it matters 2026-07-30 17:14:46 +02:00
HttpStripeClient.php Make the fake behave like Stripe where it matters 2026-07-30 17:14:46 +02:00
IdempotencyKey.php Put the price recognition back, all 3526 lines of it 2026-07-30 16:35:55 +02:00
StripeCheck.php Manage the Stripe key from the console, behind a password and a test 2026-07-27 09:01:16 +02:00
StripeClient.php Put the money gate in the class that promises it 2026-07-30 17:04:25 +02:00