目的
#223 (PR #224) で純ロジック層(summarize / rate-limit / github-ip)を既存ハーネスでカバーした。残る本流の核心である Durable Object 層をテストする。
スコープ
worker/src/store.ts — events テーブルの ingest / pending-status / pending-events / webhook-events / event / mark-processed の SQL 挙動、broadcast。
worker/src/tenant.ts — installation の resolve / created / deleted、quota の check(atomic increment) / increment / decrement の境界。
- 余力で
worker/src/index.ts の verifyGitHubSignature(HMAC-SHA256 署名検証)と webhook ingest フローの結線。
前提・制約
- これらは
DurableObject + ctx.storage.sql を使うため tsx --test では実行不可。@cloudflare/vitest-pool-workers(Miniflare) の導入が必要。
- インフラ判断を伴う:(1) worker のテストランナーを
tsx --test から vitest へ変更(または併存)、(2) @cloudflare/workers-types の transitive bump 対策としてバージョンをピン留め(過去の地雷)、(3) vitest.config 追加と CI ステップ更新。
- 導入是非・粒度は実装前に Master 確認(新インフラ=ハーネス変更のため)。
関連
目的
#223 (PR #224) で純ロジック層(summarize / rate-limit / github-ip)を既存ハーネスでカバーした。残る本流の核心である Durable Object 層をテストする。
スコープ
worker/src/store.ts— events テーブルの ingest / pending-status / pending-events / webhook-events / event / mark-processed の SQL 挙動、broadcast。worker/src/tenant.ts— installation の resolve / created / deleted、quota の check(atomic increment) / increment / decrement の境界。worker/src/index.tsのverifyGitHubSignature(HMAC-SHA256 署名検証)と webhook ingest フローの結線。前提・制約
DurableObject+ctx.storage.sqlを使うためtsx --testでは実行不可。@cloudflare/vitest-pool-workers(Miniflare) の導入が必要。tsx --testからvitestへ変更(または併存)、(2)@cloudflare/workers-typesの transitive bump 対策としてバージョンをピン留め(過去の地雷)、(3)vitest.config追加と CI ステップ更新。関連