Aller au contenu principal
Clinford Jordano Valencia
Tous les projets
Plateforme

Un outil d’injection d’état pour les tests

Une injection d’état côté serveur qui permet à la QA et à l’automatisation de sauter directement à n’importe quelle étape d’un long parcours, en ramenant la préparation des tests de non-régression de nombreuses minutes à moins d’une.

Stack
TypeScript · Playwright · BFF · Test database

Le problème

Pour vérifier un bug à l’étape 5 d’un long parcours, il fallait d’abord passer les étapes 1 à 4 à la main : informations valides, envois de fichiers, contrôles. À chaque fois, pour chaque pull request et chaque exécution automatisée.

L’approche

L’outil permet à un testeur ou à un script d’ouvrir l’application directement dans l’état voulu.

  1. Un script Playwright ou une personne de la QA charge la page avec un jeton de test sécurisé, par exemple ?state=step_4_ready.
  2. Le frontend voit le jeton à l’hydratation et le transmet dans un en-tête au BFF.
  3. Le BFF vérifie que l’environnement est strictement hors production, puis initialise la session de l’utilisateur dans la base de test : étapes précédentes terminées, pointeur actif sur l’étape 4.
  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, si bien qu’un mock uniquement 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 de nombreuses exécutions de pull requests et de suites d’automatisation chaque semaine, cela a rendu des centaines d’heures d’ingénierie par trimestre.