Panoramica
Testare un’API L402 ha due livelli:- Test unitari / di integrazione — verificano la logica del middleware senza pagamenti Lightning reali
- Test end-to-end — verificano il flusso completo con un wallet reale e sats reali
Test unitari — mock del provider
Passa unLightningProvider mock per bypassare completamente Lightning:
Generare un preimage valido per i test
Python — pytest con mock provider
Test della protezione dal replay
Verifica che un preimage non possa essere riutilizzato:Pipeline CI
Usa il mock provider in CI — non è necessario alcun nodo Lightning o chiave API:Test end-to-end con sats reali
Per un test completo del flusso di pagamento (staging/pre-lancio):- Imposta
priceSats: 1— costa circa $0.0008 per esecuzione del test - Usa OpenNode sandbox (
testMode: true) per pagare senza denaro reale: - Oppure usa il tuo wallet Blink — i pagamenti da 1 sat sono praticamente gratuiti
E2E automatizzato con un wallet di test
Checklist prima della produzione
I test unitari passano con il mock provider
Flusso 402 → pagamento → 200 verificato. Protezione dal replay verificata (il secondo utilizzo restituisce 401).
Scadenza del token testata
Imposta
exp: Date.now() - 1 nel tuo macaroon mock — verifica che il middleware restituisca 401.E2E completo con pagamento reale a priceSats: 1
Wallet reale, pagamento reale, 200 OK reale. Usa Wallet of Satoshi o Blink sul tuo telefono.
Protezione dal replay corretta per il tuo deployment
Processo singolo: l’adattatore in-memory predefinito va bene. Multi-processo (Kubernetes, PM2 cluster): usa l’adattatore Supabase o Redis. Vedi Guida alla Produzione.