Saga, un outil d’injection d’état pour les tests
Une injection d’état côté serveur qui permet à la QA et à l’automatisation d’aller directement à n’importe quelle étape d’un long parcours de vérification : la préparation des tests passe de 20 minutes à moins d’une.
- Rôle
- Senior Frontend Engineer
- Période
- 2025–aujourd’hui
- Stack
- TypeScript · Playwright · BFF · Test database
Le problème
Pour vérifier un bug à l’étape 5 du parcours KYC, il fallait d’abord saisir des informations personnelles valides, téléverser des pièces d’identité et réussir les contrôles de liveness des étapes 1 à 4. À chaque fois, pour chaque pull request et chaque exécution automatisée.
L’approche
Saga permet à une personne de test ou à un script d’ouvrir l’application directement dans l’état voulu.
- Un script Playwright ou un ingénieur QA charge la page avec un jeton de test sécurisé, par exemple
?state=step_4_ready. - Le frontend détecte le jeton à l’hydratation et le transmet dans un en-tête au BFF.
- Le BFF vérifie que l’environnement n’est strictement pas la production, puis prépare la session de l’utilisateur dans la base de test : étapes 1 à 3 terminées, pointeur actif sur l’étape 4.
- Le BFF renvoie un vrai jeton de session et l’interface affiche immédiatement l’étape 4.
J’ai choisi l’injection côté serveur plutôt que de simuler localStorage côté client. Les applications modernes valident les sessions dans le backend : une simulation uniquement côté client s’éloigne de la réalité et produit des tests qui passent ici et échouent en production.
Le résultat
La préparation des tests de non-régression est passée de 10 à 20 minutes par cycle à moins d’une minute. Avec des dizaines d’exécutions de pull requests et de suites automatisées chaque semaine, cela a rendu des centaines d’heures d’ingénierie par trimestre.