feat: Stripe checkout + webhook + upgrade prorata — 117/117 tests
This commit is contained in:
parent
f4f8c55ce7
commit
5b82c6bd46
10 changed files with 1063 additions and 3 deletions
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
### TD-02 — src/lib/planController.ts (backend)
|
||||
**Priorité :** 🟡 Important
|
||||
**Statut :** Ouvert
|
||||
**Statut :** Résolu — session Stripe
|
||||
**Description :** Stub créé pour permettre les tests de `updateUserPlan`. La vraie implémentation (mise à jour Supabase + gestion Stripe) n'est pas encore codée.
|
||||
**À faire :** Implémenter lors de la session Stripe (POST /stripe/webhook).
|
||||
**Session concernée :** Tests automatisés
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
### TD-03 — src/lib/stripe.ts (backend)
|
||||
**Priorité :** 🟡 Important
|
||||
**Statut :** Ouvert
|
||||
**Statut :** Résolu — session Stripe
|
||||
**Description :** Stub créé pour permettre les tests de `verifyStripeWebhook` et `calculateProrata`. La vraie implémentation Stripe n'est pas encore codée.
|
||||
**À faire :** Implémenter lors de la session Stripe.
|
||||
**Session concernée :** Tests automatisés
|
||||
|
|
@ -85,6 +85,29 @@
|
|||
|
||||
---
|
||||
|
||||
### TD-13 — Webhook Stripe non idempotent
|
||||
**Priorité :** 🔴 Critique
|
||||
**Statut :** Ouvert — à faire avant mise en production
|
||||
**Description :** Stripe peut livrer un même event webhook deux fois (retries réseau, rejeu manuel depuis le dashboard). La route `POST /stripe/webhook` traite chaque réception sans dédoublonnage. En pratique, les opérations `updateUserPlan` et `updateUserStripeInfo` sont idempotentes par nature (même résultat en cas de double appel), mais si de la logique non idempotente est ajoutée plus tard (ex: compteur, envoi d'email, crédit utilisateur), un double traitement causerait un bug.
|
||||
**À faire :**
|
||||
- Créer une table `stripe_webhook_events(id TEXT PRIMARY KEY, processed_at TIMESTAMPTZ)`
|
||||
- Avant traitement, vérifier si `event.id` est déjà en base → si oui, retourner 200 sans rien faire
|
||||
- Après traitement, insérer l'`event.id` dans la table
|
||||
**Session concernée :** Stripe (POST /stripe/webhook)
|
||||
**Condition de résolution :** Avant la mise en production publique.
|
||||
|
||||
---
|
||||
|
||||
### TD-14 — Erreurs TypeScript TS2835 pré-existantes
|
||||
**Priorité :** 🟡 Important
|
||||
**Statut :** Ouvert
|
||||
**Description :** Erreurs TS2835 sur plusieurs fichiers de routes.
|
||||
Non bloquant (tests verts) mais à corriger.
|
||||
Gate de qualité actuel : npm run test.
|
||||
**À faire :** Ajouter les extensions `.js` aux imports relatifs ou ajuster `moduleResolution` dans `tsconfig.json` pour permettre `npm run build` de passer.
|
||||
|
||||
---
|
||||
|
||||
## 3. Fonctionnalités reportées
|
||||
|
||||
### TD-08 — Phonologie T2 EO à 0
|
||||
|
|
@ -136,4 +159,5 @@
|
|||
|
||||
| ID | Description | Résolu le | Comment |
|
||||
|---|---|---|---|
|
||||
| — | — | — | — |
|
||||
| TD-02 | planController.ts complété | 2026-04-16 | Session Stripe |
|
||||
| TD-03 | stripe.ts complété | 2026-04-16 | Session Stripe |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue