-
-
Notifications
You must be signed in to change notification settings - Fork 517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
support custom fetch option #2070
Comments
Hi, @juliusmarminge. If I may, what does your custom MSW will always rely on the standards and that's unlikely to change. Your custom fetch is likely wrapping the native fetch or tapping into things like I don't believe we need |
@kettanaito so the problem im having is that msw doesn't intercept these fetches for me... |
What is I suggest to do the following:
|
it's just a |
@juliusmarminge, that's not going to work. You are throwing the Instead, if you wish to spy on fetch, just spy on it without replacing it. vi.spyOn(globalThis, 'fetch') This will leave the implementation of fetch intact, execute the actual requests in a test, which will trigger MSW, giving you control over how to resolve those requests. You can also spy on the request handlers directly if you absolutely have to. |
I'm not overriding the global fetch with a mock. I'm just calling it as part of the user-provided fetch: {
fetch: (url, init) => {
fetchMock(url, init); // allows easy assertions of what fetch has been called with, although a spy could work just as well i guess
return fetch(url, init);
}
} |
Oh, got it. Then MSW will trigger. As long as your test makes requests, MSW request handlers will always trigger. If it ever doesn't, please follow the Debugging runbook, it can point out some common issues. If nothing helps, please submit a reproduction repository and I will take a look. Thanks! |
Scope
Adds a new behavior
Compatibility
Feature description
Our lib takes an optional
fetch
option to let users override the fetch function used to make requests. Something like this:It doesn't seem like MSW is able to intercept the requests made with this approach, so I'd like to suggest the option to provide the fetch implementation to use:
Is there some way to achieve this already? Up until now I've mocked the fetch by passing in a custom function as argument to every test and mocking based on that, but it doesn't work for browser tests so now i need to define all the mocks twice, I would like to be able to mock everything in one place
The text was updated successfully, but these errors were encountered: