Skip to main content

Panoramica

Testare un’API L402 ha due livelli:
  1. Test unitari / di integrazione — verificano la logica del middleware senza pagamenti Lightning reali
  2. Test end-to-end — verificano il flusso completo con un wallet reale e sats reali

Test unitari — mock del provider

Passa un LightningProvider 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:
Gestisci la selezione del provider in base all’ambiente:

Test end-to-end con sats reali

Per un test completo del flusso di pagamento (staging/pre-lancio):
  1. Imposta priceSats: 1 — costa circa $0.0008 per esecuzione del test
  2. Usa OpenNode sandbox (testMode: true) per pagare senza denaro reale:
  3. 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

1

I test unitari passano con il mock provider

Flusso 402 → pagamento → 200 verificato. Protezione dal replay verificata (il secondo utilizzo restituisce 401).
2

Scadenza del token testata

Imposta exp: Date.now() - 1 nel tuo macaroon mock — verifica che il middleware restituisca 401.
3

E2E completo con pagamento reale a priceSats: 1

Wallet reale, pagamento reale, 200 OK reale. Usa Wallet of Satoshi o Blink sul tuo telefono.
4

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.