Skip to main content

概要

L402 APIのテストには2つの層があります:
  1. ユニット/インテグレーションテスト — 実際のLightning支払いなしでミドルウェアロジックを検証する
  2. エンドツーエンドテスト — 実際のウォレットと実際のsatsで完全なフローを検証する

ユニットテスト — プロバイダーをモックする

モックのLightningProviderを渡してLightningを完全にバイパスする:

テスト用の有効なpreimageを生成する


Python — モックプロバイダーでpytest


リプレイ保護のテスト

preimageが再利用できないことを検証する:

CIパイプライン

CIではモックプロバイダーを使用する — Lightning ノードやAPIキーは不要:
環境によってプロバイダーの選択を制御する:

実際のsatsでのエンドツーエンドテスト

完全な支払いフローのテスト(ステージング/リリース前):
  1. priceSats: 1を設定する — テスト実行あたり約$0.0008のコスト
  2. OpenNode sandboxtestMode: true)を使用して実際のお金なしで支払う:
  3. またはBlinkウォレットを使用する — 1 sat支払いは実質的に無料

テストウォレットを使った自動E2E


本番前チェックリスト

1

モックプロバイダーでユニットテストが通過する

402 → 支払い → 200のフローを検証済み。リプレイ保護を検証済み(2回目の使用で401が返る)。
2

トークンの有効期限をテスト済み

モックのmacaroonでexp: Date.now() - 1を設定する — ミドルウェアが401を返すことを検証する。
3

priceSats: 1で実際の支払いによる完全なE2Eを実施

実際のウォレット、実際の支払い、実際の200 OK。スマートフォンでWallet of SatoshiまたはBlinkを使用する。
4

デプロイ環境に適したリプレイ保護が設定されている

シングルプロセス:デフォルトのインメモリアダプターで問題なし。マルチプロセス(Kubernetes、PM2クラスター):SupabaseまたはRedisアダプターを使用する。本番ガイドを参照。