TL;DR
有効なセッショントークンを生成してクッキーとして保存する必要があります。これにより、E2E テストが手動ログインなしに認証済みルートにアクセスできます。この方法は、クレデンシャルベースと OAuth 認証の両方に対応しています。
GitHub リポジトリ:nelsonlaidev/e2e-testing-with-better-auth
はじめに
このガイドでは、E2E テストフレームワークとして Playwright を使用しますが、概念は Cypress などの他のフレームワークにも応用できます。
シンプルにするため、クレデンシャルベースの認証例を使用します。ただし、同じ原則が OAuth プロバイダーにも適用されます。
また、デモ目的で SQLite データベースを使用します。セットアップに合わせてデータベースのやり取り (例:テーブル名、カラム型) を調整してください。
セッショントークンの生成
認証済みセッションをシミュレートするために、BETTER_AUTH_SECRET を使って署名済みセッショントークンを生成します。このトークンはセッションクッキーで使用されます。
テストデータの挿入
テスト中に複数のユーザーが作成されないよう、テストユーザーを静的に保ちます。まだ存在しない場合は、テストユーザー、アカウント、セッションをデータベースに挿入します。シンプルにするため、すべての主キーに 0 を使用します。
セッションの保存
テストフレームワークで使用するために、署名済みトークンを JSON ファイルにクッキーとして保存します。クッキー値は必ず encodeURIComponent してください。
テストでのセッションの使用
保存したセッションを E2E テストで読み込み、ログインなしで保護されたルートにアクセスします。以下の例は Playwright を使用していますが、クッキーのインジェクションをサポートする任意のテストライブラリ(Cypress など)に適用できます。
