🐕
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 workerdやVitest integration、Hono Cloudflare Testing
にもRequireについての記載はなかった。
Discussion