reactjs - Başlık: Remix/Cloudflare Pages geliştirme ortamında "Request" sınıfını kullanma sorunu


Şu anda Remix (react), Miniflare ve Cloudflare Pages ile çalışıyorum ve test yazarken bir hata ile karşılaştım. Hata mesajı şöyle diyor: "ReferenceError: Request tanımlı değil."

import { loader } from '~/routes/example'

test('loader test', async () => {
  const response = await loader({
    request: new Request('http://localhost:xxxx/entries'),
    params: {},
    context: {},
  })
  console.log(response)

  expect(response).toBeInstanceOf(Response)
})
FAIL  app/tests/core/example-01.spec.ts
  ✕ loader test (1 ms)

  ● loader test

    ReferenceError: Request is not defined

      3 | test('loader test', async () => {
      4 |   const response = await loader({
    > 5 |     request: new Request('http://localhost:xxxx/entries'),
        |                  ^
      6 |     params: {},
      7 |     context: {},
      8 |   })

      at Object.<anonymous> (app/tests/core/example-01.spec.ts:5:18)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        4.002 s
Ran all test suites matching /app\/tests\/core\/example-01.spec.ts/i.

Kodumda Request sınıfını ithal etmeden kullanıyorum çünkü IDE'imde herhangi bir hata göstermiyor. Ancak testleri çalıştırırken hata oluşuyor. IDE'imde Request tanımına gittiğimde beni index.d.ts dosyasındaki aşağıdaki koda yönlendirdiğini fark ettim:

declare class Request extends Body {
  constructor(input: Request | string, init?: RequestInit | Request);
  // Other properties and methods...
}

Buna dayanarak, Request'in içe aktarılması gereken bir modül değil, tarayıcı veya Node.js çalışma ortamında sağlanan yerel bir nesne gibi göründüğü anlaşılıyor. Geliştirme ortamım olarak Miniflare kullanıyorum ve bunun Request sınıfı için kendi uygulamasına veya poliefiline sahip olduğunu varsayıyorum.

IDE'im Request sınıfını sorunsuz şekilde tanımasına rağmen, hata test yürütmesi sırasında ortaya çıkıyor ve bu durum test çalıştırıcısının veya ortamın Request sınıfını düzgün şekilde yorumlayamadığını gösteriyor.

Birisi bu hatanın neden oluştuğunu açıklayabilir mi ve testlerimde Request sınıfını kullanırken hatayla karşılaşmamamak için bir çözüm önerebilir mi?

Request'in tanımlandığı dosyayı içe aktarmayı denedim, ama başarısız oldu.

● Test paketi çalıştırılamadı

javascript Kodu kopyala 'app/tests/core/example-01.spec.ts' dosyasından '@cloudflare/workers-types/index' modülü bulunamıyor

1 | import { loader } from '~/routes/example'

2 | import '@cloudflare/workers-types/index' | ^3 | 4 | test('loader testi', async() => { 5 | const response=await loader({

Resolver._throwModNotFoundError içinde (node_modules/jest-resolve/build/resolver.js:427:11) Nesne içinde. (app/tests/core/example-01.spec.ts:2:1)