Le moteur de facturation
≈ 25 min150 pts max
Contexte
Ticket SUP-2291, priorité haute : « Le calcul de TVA plante pour les clients internationaux. » La commande d'un client suisse a fait tomber le checkout ce matin.
Le suspect : computeInvoice, écrite en 2019 par Gérard, qui a quitté l'entreprise depuis. Personne n'ose y toucher, mais elle est couverte par une suite de tests de caractérisation (tests/invoice.test.ts). Le support a ajouté tests/export.test.ts, qui reproduit le ticket. Il est rouge.
Objectif
- Fais passer
tests/export.test.tsau vert : hors de l'UE, une facture est émise sans TVA (régimeexport). - Ne casse aucun test de
tests/invoice.test.ts. - Laisse le code plus lisible que tu ne l'as trouvé : la complexité cyclomatique de
computeInvoicedoit tomber à 8 ou moins. La fonction garde son nom et reste danssrc/invoice.ts.
⌘S / Ctrl+S lance les tests. Soumets quand tout est vert : chaque soumission ratée coûte des points.
- Éditeur
- Tests
- Terminal
- Complexité cyclomatique