Comments (4)
I haven't tried it in Node. I realize now I wasn't very descriptive of my scenario.
I'm building a React project w/ React Router and using Mirage JS as a fake API. Mirage JS is using Pretender, which is using whatwg-fetch
as the polyfill for fetch. Because that polyfill doesn't include a body
property, React Router isn't recognizing the Response as a legitimate response, since Response objects need to have a true .body
property according to the spec.
There are some limitations to the polyfill and streaming responses, which is why they chose not to include a true .body
on their Responses. However, from poking around the Pretender code base, it looks like that polyfill is being used whether the browser environment it's being used in is modern enough to have a fetch
implementation built in.
I wrote this little PR that would check to see if the browser being used has window.fetch
already.
I also might be way in over my head with this 😅 but I thought I'd give it a shot in the dark to see if that might help avoid using the polyfill if it isn't needed in that environment. But I'm very happy to be corrected if I'm not going about things the right way.
from pretender.
Is this happening for you in Node?
from pretender.
I also have similar issue with the fetch polyfill of pretender in node.js (v20.0) - global.Headers
is now a read only property as fetch is officially supported for a while (see link), the mocking always throw a Type Error now.
Please accept the PR #362
from pretender.
I'm building a React project w/ React Router and using Mirage JS as a fake API. Mirage JS is using Pretender, which is using
whatwg-fetch
as the polyfill for fetch. Because that polyfill doesn't include abody
property, React Router isn't recognizing the Response as a legitimate response, since Response objects need to have a true.body
property according to the spec.
The exact same issue is happening on Next.js with its app router. Next's app router uses the .body
property to enable the smooth navigation from page to page. Because of this issue, the navigation is completely broken on NextJS when using Miragejs/pretender. It would be cool if the PR #362 was accepted to fix this issue.
from pretender.
Related Issues (20)
- Intercept XMLHttpRequest through a Service Worker HOT 3
- requestBody missing from types HOT 1
- Proposal: Vendor whatwg-fetch HOT 12
- Cannot read property 'prototype' of undefined (XMLHTTPRequest) HOT 2
- Incorrect "progress" events for requests with FormData HOT 1
- Passthrough for binary files not working HOT 8
- Resolve all manual resolution requests by calling pretender.resolve() with no arguments? HOT 1
- Mocking route with query params HOT 3
- Types for RequestHandler are too strict
- XMLHttpRequest's responseType json is ignored by passthrough
- FormData undefined is not a function
- Implement `prepare` hook to run `yarn build` before `yarn test`
- Server class in index.d.ts does not match Pretender class HOT 1
- Unable to extend verbified methods
- Using happy-dom instead of jsdom? HOT 1
- Passthrough not working with axios 0.21.2+ HOT 4
- Mismatch between types in `pretender.js` and in `index.d.ts`
- Conflict with webpack and ember-auto-import v2 in an emberjs project
- Interference between Pretender and React Server Components HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pretender.