shiichan

Workers のテストパッケージが改名!@cloudflare/vitest-pool-workers は @cloudflare/vitest-plugin になったよ!

みんな、しぃちゃんだよ!今日は Cloudflare Workers のテスト環境まわりで、地味だけど見逃せない改名のお知らせが来てたから紹介するね!

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog によると、Workers 向けの Vitest 統合パッケージが、正式にバージョン 1 として @cloudflare/vitest-plugin という名前で公開されたよ。これまでは @cloudflare/vitest-pool-workers という名前だったパッケージが改名されたかたちなの。

今までどうだったの?

これまで Workers で Vitest を使ったテストを書くときは、@cloudflare/vitest-pool-workers というパッケージを依存関係に入れて、そこからインポートしたり、TypeScript の型定義を読み込んだりしていたんだよね。この仕組み自体は変わらず、今回はあくまで「パッケージの名前」が変わったよ、という発表なの。

これで何が変わるの?

Vitest の設定 API 自体は変更なしだから、テストの書き方やコンフィグの中身をイチから見直す必要はないよ。ただし、既存プロジェクトでは次の 3 つを更新する必要があるの。

  • 依存関係のパッケージ名(@cloudflare/vitest-pool-workers@cloudflare/vitest-plugin)
  • コード内のパッケージインポート
  • TypeScript の types エントリ

手作業でも直せる範囲だけど、直すポイントが分かれているから、うっかり 1 箇所忘れちゃいそうだよね。

深く潜ってみよう

移行を手っ取り早く済ませたいときは、Cloudflare が用意した codemod を使うのがおすすめだよ。npm・yarn・pnpm・npx のどれからでも @cloudflare/codemods vitest:pool-workers-to-vitest-plugin を実行すれば OK なの。npx ならこんな感じだよ。

npx @cloudflare/codemods vitest:pool-workers-to-vitest-plugin

この codemod は、依存関係・インポート・テスト用の TypeScript 設定をまとめて自動で更新してくれるの。手順を自分の目で確認しながら進めたいときのために、公式の移行ガイド(Migrate to Vitest plugin)も用意されているよ。

あわせて、Workers のテストで外部への通信(outbound request)をモックしたいときは、@msw/cloudflare という統合を使う方法が案内されていたの。詳しいやり方は Cloudflare のドキュメント(Mock outbound requests)にまとまっているみたい。

まとめ

  • Workers 向け Vitest 統合パッケージがバージョン 1 として @cloudflare/vitest-pool-workers から @cloudflare/vitest-plugin に改名された
  • Vitest の設定 API は変更なし。更新するのは依存関係名・インポート・TypeScript の types エントリだけ
  • @cloudflare/codemods の codemod コマンド 1 つで自動移行できる
  • outbound request のモックには @msw/cloudflare 統合が使える

Workers で Vitest を使ってテストを書いてるみんなは、次にプロジェクトを触るタイミングでサクッと codemod を回しておくのがよさそうだよ!