अवलोकन
एक L402 API का परीक्षण करने के दो स्तर हैं:- Unit / integration tests — बिना real Lightning payments के अपने middleware logic को verify करें
- End-to-end tests — real wallet और real sats के साथ पूरे flow को verify करें
Unit tests — mock provider का उपयोग करें
Lightning को पूरी तरह bypass करने के लिए एक mockLightningProvider पास करें:
परीक्षण के लिए एक valid preimage बनाएं
Python — mock provider के साथ pytest
Replay protection का परीक्षण
यह verify करें कि एक preimage दोबारा उपयोग नहीं किया जा सकता:CI pipeline
CI में mock provider का उपयोग करें — कोई Lightning node या API key की आवश्यकता नहीं:Real sats के साथ End-to-end test
पूरे payment flow के परीक्षण के लिए (staging/pre-launch):priceSats: 1सेट करें — प्रति test run ~$0.0008 खर्च होता है- बिना real money के payment करने के लिए OpenNode sandbox (
testMode: true) का उपयोग करें: - या अपना Blink wallet उपयोग करें — 1 sat payments practically मुफ्त हैं
एक test wallet के साथ Automated E2E
Production से पहले checklist
Mock provider के साथ Unit tests पास हों
402 → pay → 200 flow verify हो। Replay protection verify हो (दूसरे उपयोग पर 401 मिले)।
Token expiry परखी जाए
अपने mock macaroon में
exp: Date.now() - 1 सेट करें — verify करें कि middleware 401 लौटाता है।priceSats: 1 पर real payment के साथ Full E2E
Real wallet, real payment, real 200 OK। अपने फोन पर Wallet of Satoshi या Blink उपयोग करें।
आपके deployment के लिए Replay protection सही हो
Single process: default in-memory adapter ठीक है। Multi-process (Kubernetes, PM2 cluster): Supabase या Redis adapter उपयोग करें। देखें Production Guide।