cloudflare / worker-typescript-template

ʕ •́؈•̀) TypeScript template for Cloudflare Workers
Apache License 2.0
424 stars 92 forks source link

There is some problem with testing code #43

Open Iezuni opened 3 years ago

Iezuni commented 3 years ago

When I use fetch('someUrl') in my code, the jest will report a bug like ReferenceError: fetch is not defined. How can I solve this problem?

koeninger commented 3 years ago

Local tests run in node. Node does not implement the fetch api.

There are a number of packages for mocking the fetch api, jest-fetch-mock has typescipt definitions https://www.npmjs.com/package/jest-fetch-mock#to-setup-for-an-individual-test

Here's an example basic usage https://github.com/cloudflare/worker-typescript-template/tree/example-jest-fetch-mock

nelsonjchen commented 2 years ago

Miniflare is a good replacement for the existing mock. It actually simulates fetch properly.

Example (haven't extracted it back for the PR yet): https://github.com/nelsonjchen/gtr-proxy/tree/snapshot-miniflare-replacement

nelsonjchen commented 2 years ago

https://github.com/cloudflare/worker-typescript-template/pull/58

Oh someone beat me to it by 5 days.