Vue d’ensemble
Tester une API L402 comporte deux niveaux :- Tests unitaires / d’intégration — vérifier la logique de votre middleware sans vrais paiements Lightning
- Tests de bout en bout — vérifier le flux complet avec un vrai portefeuille et de vrais sats
Tests unitaires — simuler le fournisseur
Passez unLightningProvider simulé pour contourner entièrement Lightning :
Générer un preimage valide pour les tests
Python — pytest avec fournisseur simulé
Tester la protection contre la réutilisation
Vérifiez qu’un preimage ne peut pas être réutilisé :Pipeline CI
Utilisez le fournisseur simulé en CI — aucun nœud Lightning ni clé API requise :Test de bout en bout avec de vrais sats
Pour un test complet du flux de paiement (staging/pré-lancement) :- Définissez
priceSats: 1— coûte environ $0,0008 par exécution de test - Utilisez le bac à sable OpenNode (
testMode: true) pour payer sans argent réel : - Ou utilisez votre portefeuille Blink — les paiements de 1 sat sont pratiquement gratuits
E2E automatisé avec un portefeuille de test
Liste de vérification avant la mise en production
Les tests unitaires passent avec le fournisseur simulé
Flux 402 → paiement → 200 vérifié. Protection contre la réutilisation vérifiée (deuxième utilisation retourne 401).
Expiration du token testée
Définissez
exp: Date.now() - 1 dans votre macaroon simulé — vérifiez que le middleware retourne 401.E2E complet avec un vrai paiement à priceSats: 1
Vrai portefeuille, vrai paiement, vrai 200 OK. Utilisez Wallet of Satoshi ou Blink sur votre téléphone.
Protection contre la réutilisation correcte pour votre déploiement
Processus unique : l’adaptateur en mémoire par défaut convient. Multi-processus (Kubernetes, PM2 cluster) : utilisez l’adaptateur Supabase ou Redis. Voir le Guide de production.