簡要概述
您需要生成一個有效的會話令牌並將其儲存為 Cookie。這允許您的端到端測試訪問需要身份驗證的路由,而無需手動登錄。此方法適用於基於憑證和 OAuth 的身份驗證。
前言
在本指南中,我們將使用 Playwright 作為我們的端到端測試框架,但這些概念同樣適用於其他框架,如 Cypress。
為了簡單起見,我們將使用基於憑證的身份驗證範例。然而,相同的原則也適用於 OAuth 提供者。
此外,我們使用 SQLite 資料庫進行示範。請根據您的設置調整資料庫交互(例如,表名、欄位類型)。
生成會話令牌
為了模擬已驗證的會話,我們需要使用 BETTER_AUTH_SECRET 生成一個簽名的會話令牌。此令牌將用於會話 Cookie 中。
插入測試資料
我們希望保持測試用戶的靜態,以避免在測試期間創建多個用戶。如果測試用戶、帳戶和會話尚未存在,則將其插入資料庫。為簡單起見,我們使用 0 作為所有主鍵的唯一 ID。
儲存會話
將簽名的令牌儲存為 JSON 檔案中的 Cookie,以便在測試框架中使用。不要忘記對 Cookie 值進行 encodeURIComponent 編碼。
在測試中使用會話
在您的端到端測試中載入儲存的會話,以訪問受保護的路由,而無需登錄。以下範例使用 Playwright,但這可以適應任何支援 Cookie 注入的測試庫(例如,Cypress)。
