Corriger une implémentation de gestion transactionnelle selon des tests TDD avancés
Scénario
Contexte Des tests TDD définissent le comportement d’un OrderService qui doit réserver un stock, débiter un paiement et confirmer la commande de manière atomique. Le Problème L’implémentation actuelle ne gère pas correctement les échecs intermédiaires : class OrderService { constructor(stock, payment) { this.stock = stock; this.payment = payment; } async place(order) { await this.stock.reserve(order); await this.payment.charge(order); return "confirmed"; } } Un test exige que si payment.charge échoue, le stock soit libéré. Contraintes Modifier uniquement l’implémentation pour satisfaire les tests existants sans les altérer. Livrable attendu Une version conforme aux tests garantissant la cohérence transactionnelle.