← Le cauchemar du Legacy

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

  1. Fais passer tests/export.test.ts au vert : hors de l'UE, une facture est émise sans TVA (régime export).
  2. Ne casse aucun test de tests/invoice.test.ts.
  3. Laisse le code plus lisible que tu ne l'as trouvé : la complexité cyclomatique de computeInvoice doit tomber à 8 ou moins. La fonction garde son nom et reste dans src/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