🐕

Hono OpenAPIを使ったらCloudflareのテストが失敗するようになったメモ

に公開

概要

Cloudflare Workers + Hono で Firebase Auth認証を試したメモでHono Openapiを使ってAPIを作成していたのだが、テストが失敗するようになっていた。
結論からいうと、ESM対応されていないので、vitestではテストできないという状況だった。
OpenAPIは手動で書くようにしHono OpenAPIを使わないように修正した。issue

 FAIL  test/index.spec.ts [ test/index.spec.ts ]
TypeError: Cannot use require() to import an ES Module.
 ❯ ../../node_modules/@apidevtools/json-schema-ref-parser/dist/lib/refs.js:39:15
 ❯ ../../node_modules/@apidevtools/json-schema-ref-parser/dist/lib/index.js?mf_vitest_no_cjs_esm_shim:40:35
 ❯ ../../node_modules/json-schema-walker/dist/index.js?mf_vitest_no_cjs_esm_shim:8:50

vitestはcommonjs非対応Hono OpenAPIのIssueの記事をみて、ESM非対応なのが問題ということがわかった。
ESM対応は現在進めている最中というIssueがある。

調査したが成果を得られらなかった記事

BUG: vitest-pool-workers Cannot use require() to import an ES Moduleの会話が検索にヒットしたが、今回の件とは関係ない内容だった。
Improved Cloudflare Workers testing via Vitest and workerdVitest integrationHono Cloudflare Testing
にもRequireについての記載はなかった。

Discussion