cloudflare:testでDurable Objectのエビクションをテスト可能に
Key Points
- evictDurableObject追加
- evictAllDurableObjects追加
- v0.16.20以上で利用可
Summary
@cloudflare/vitest-pool-workers に evictDurableObject と evictAllDurableObjects のテストヘルパーが追加され、cloudflare:test から利用できるようになりました。これらはプロダクションでのライフサイクル(アイドル状態の Durable Object がメモリからエビクトされる挙動)をシミュレートして、インスタンスの再生成や WebSocket の取り扱いを含む挙動をテストできます。利用には @cloudflare/vitest-pool-workers@0.16.20 以降が必要です。
Key Points
- インポート例:
import { evictDurableObject, evictAllDurableObjects } from "cloudflare:test"。 - 特定インスタンスのエビクション:
await evictDurableObject(stub)。 - WebSocket 振る舞いを制御:
await evictDurableObject(stub, { webSockets: "close" })(ハイバネートではなくクローズする挙動を検証)。 - すべてのエビクタブルな名前空間上の実行中 Durable Object を一括エビクト:
await evictAllDurableObjects()。 - テスト用途: 再初期化、状態永続化、接続の切断や再接続などライフサイクル依存の振る舞いを自動化して検証可能。
- 必要バージョン:
@cloudflare/vitest-pool-workers@0.16.20以上で利用可能。ドキュメントは Test APIs と Testing Durable Objects を参照してください。