🔥

Hono + Cloudflare WorkersでserveStaticしている時のvitestの設定

2024/05/24に公開

背景

  • Hono内でserveStatic()を利用する際は、import manifest from '__STATIC_CONTENT_MANIFEST';というイディオムが必要となる
  • __STATIC_CONTENT_MANIFESTは静的ファイルをCloudflare KVで配信するための設定を色々書くためのものらしい、あんまりよくわかっていない
  • このimportはvitestでは失敗する

解決策

import { vi } from 'vitest';

vi.mock('__STATIC_CONTENT_MANIFEST', () => ({ default: {} }));

vi.mockにより、指定した名前のモジュールの内容をテストコード側で定義出来るので、テストを実行出来るようになる。

モックの内容はこれでいいのか?

  • jestの例だが、単に{}に置き換える手法がいくつかのIssueで示されているので、これでいいのだろう
  • moduleNameMapperという設定を利用しているが、これはvitestにはないので、vi.mockを利用している
    • こちらの方が、変にファイルや設定を作らなくて良いので筋が良い気がする

https://github.com/honojs/hono/issues/1093
https://github.com/kriasoft/cloudflare-starter-kit/pull/22

MIERUNEのZennブログ

Discussion