Saga, uno strumento per iniettare lo stato nei test
Iniezione di stato lato server che permette a QA e automazione di saltare direttamente a qualsiasi passaggio di un lungo flusso di verifica, riducendo la preparazione dei test di regressione da un massimo di 20 minuti a meno di 1.
- Ruolo
- Senior Frontend Engineer
- Periodo
- 2025–oggi
- Stack
- TypeScript · Playwright · BFF · Test database
Il problema
Per verificare un bug al passaggio 5 del flusso KYC, bisognava prima inserire dati personali validi, caricare i documenti e superare i controlli di liveness dei passaggi da 1 a 4. Ogni volta, per ogni pull request e ogni esecuzione automatica.
L’approccio
Saga permette a chi testa, o a uno script, di aprire l’app direttamente nello stato che serve.
- Uno script Playwright o un tecnico QA carica la pagina con un token di test sicuro, per esempio
?state=step_4_ready. - Il frontend rileva il token durante l’hydration e lo inoltra in un header al BFF.
- Il BFF verifica che l’ambiente non sia in alcun modo di produzione, poi prepara la sessione dell’utente nel database di test: passaggi da 1 a 3 completati e puntatore attivo sul passaggio 4.
- Il BFF restituisce un vero token di sessione e l’interfaccia mostra subito il passaggio 4.
Ho scelto l’iniezione lato server invece di simulare localStorage sul client. Le app moderne convalidano le sessioni nel backend, quindi una simulazione solo lato client si allontana dalla realtà e produce test che passano qui e falliscono in produzione.
Il risultato
La preparazione dei test di regressione è passata da 10–20 minuti per ciclo a meno di un minuto. Con decine di esecuzioni di pull request e suite di automazione ogni settimana, ha restituito centinaia di ore di ingegneria a trimestre.