本文へ移動
rdlabo.dev

テスト・運用

Testing entry point

@rdlabo/workers-hono-kit/testing はDB peer dependencyを必要とし、production codeからは読み込みません。

Helper 用途
createTestDb() Drizzle migrationを適用したtest DBを作る。
FakeFirebaseVerifier 登録済みin-memory Firebase tokenを検証する。
createPoolDatabase() / createNoopDatabase() Test用Database実装を提供する。
authHeaders() / registerFirebaseToken() / provisionUser() 認証付きroute testを準備する。
configurableFake() 未設定memberで明示的に失敗するpartial fakeを作る。
fakeKv() / fakeQueue() In-memory Workers binding fakeを使う。
Stripe fixture factory 型付きevent、session、subscription、price、intentを作る。

Queue

sendInChunks() はWorkers subrequest上限内にqueue sendを分割します。processBatch() はmessage batchを逐次処理し、同時subrequestを1に抑えます。queueDisposition: 'discard' を明示したerrorはack、それ以外はretryします。createQueueErrorHandler() はloggingと任意の最終attempt reportingを追加します。

運用CLI

パッケージは開発AWS credential同期、subrequest fanout検査、DB baseline作成、Realtime bundle検査、Durable Object metrics照会のcommandを公開します。Infrastructureを変更する前に、インストール済みversionのCLIを使い --help を確認してください。

Trust boundary

AWS、Firebase、AI Gateway、Stripe、DB clientはアプリ側で設定します。Domain固有credential、schema、認可policyを共有kitへ置かないでください。createRolePolicy() はstorage非依存のrole・relation mappingに限定し、roleとpermissionの正本はアプリが所有します。