搜尋說明文件

搜尋文件頁面與標題。

測試

此頁面向想了解我們為何測試、覆蓋率如何界定的讀者——不是即時的 CI 百分比看板。

為何現在要測試

JustHold 涉及資金計算、登入導向、資料列層級安全性(RLS),以及註冊、持倉等關鍵路徑。自動化測試在產品成長時抓住這些區域的回歸,讓部位邏輯與權限規則可靠,而不只依賴手動點擊。

測試層級

層級位置執行方式用途
單元tests/unit/Vitestlib/ 內純函式——不碰資料庫或網路
整合tests/integration/Vitest + 本機 SupabaseRLS、RPC、資料庫行為
E2Etests/e2e/Playwright關鍵使用流程(如註冊、持倉門檻)

指令

pnpm test            # 單元
pnpm test:watch      # 單元,監聽模式
pnpm test:coverage   # 單元 + 覆蓋率門檻(CI)
pnpm test:int        # 整合(本機 Supabase)
pnpm test:e2e        # Playwright(本機)

覆蓋率哲學

vitest.config.ts 的單元覆蓋率門檻只套用在一份精選的純模組清單(格式化、資金輔助、排序鍵等)。刻意維持清單精簡,數字才有意義。

  • 在 include 清單內 — 追求扎實的單元覆蓋;CI 會強制門檻(例如該集合約 80% 行覆蓋)。
  • 在 include 清單外 — 不是「被遺忘」。RSC 頁面、server actions、資料庫行為改由整合/E2E 涵蓋(或規劃中),而非單元門檻。

當某個純 lib/ 模組已充分測試,我們會把它的路徑加進 coverage.include,門檻才會誠實。

已知缺口(依類別)

這裡列檔案級缺口清單——很快就過時。大致上,這些區域在單元層目前偏薄或尚未覆蓋:

  • 多數 UI 與 RSC 頁面
  • 管理後台 CMS 與內容工具
  • 文件站本身
  • 需要真實資料庫或瀏覽器的行為(優先用整合/E2E)

我們會持續強化純領域輔助函式,並在模組穩固後擴充 coverage.include