Kernel fixtures and one capture assertion still describe kessai before partial claims

Consumer catch-up for kessai [#3614954], which gives a payment four amounts instead of one and lets a hold be claimed and released in parts. Nothing in orchestra_payment's own code changes: SettleTask still calls capture($payment, $captureAmount), whose finality defaults to closing the authorization, and its zero-capture path still calls cancel($payment) with no amount to release the whole hold.

Two things in the kernel tests described the engine as it was:

The fixtures. cancel() now writes a kessai_reversal row, one per release of a hold, so SettleTaskTest installs that entity's schema. Only that class needs it: it is the one that releases an authorization. The seven others move no money that leaves a row.

One assertion. testCapturesResolvedAmountNotAuthorized read the claimed figure off the payment's amount, which worked only because a partial capture used to overwrite it. It no longer does, so the assertion reads the captured total, and two more pin what the change is for: 50,00 authorized still says 50,00, and the unclaimed remainder was released rather than left standing. The test's own subject, that the step captures the resolved amount rather than the authorized one, is unchanged.

Run locally against merged kessai bfb4bd4, one class at a time, all green: SettleTaskTest, PaymentBridgeTest, PaymentOperationsTest, CheckoutOrderingTest, CheckoutRefusalTest, StoredCardCleanupTest, PaymentRouteOutcomeTest, PaymentIndexTest. phpcs and phpstan clean.

Worth considering separately, and deliberately not here: whether a Payable should be able to say its capture is not the last one, so a workflow could claim part of a guarantee and keep the rest live. That is a feature for the resolver contract rather than a fix to these tests.

Merge request reports

Loading
Loading