Open kanadgupta opened 1 month ago
@kanadgupta thanks for the super detailed report! We'll take a look and see what our options are here. The fix seems straightforward, but we don't want to break anything else in the process.
(filed internally as: http://go/j/DEVSDK-2261)
Describe the bug
Hi there. I'm using
nock@beta
and it is no longer able to intercept requests from this library when using the default Node.jshttpClient
settings (i.e., this HTTP client).This is because
nock
is adding support for nativefetch
and now uses@mswjs/interceptors
to intercept requests (which is also used bymsw
).The workaround is fairly trivial — configure the Stripe SDK to use
fetch
(see theworkaround
section here). But oncenock@14
is released, it will not support this library without additional end user configuration. Based on a handful of issues in this repo, I cannot imagine this is the desired behavior:https://github.com/stripe/stripe-node/issues/1844 https://github.com/stripe/stripe-node/pull/1854 https://github.com/stripe/stripe-node/pull/1866
To Reproduce
See https://github.com/kanadgupta/nock-beta-stripe-sdk
Expected behavior
The current Nock beta and its underlying interceptor library (
@mswjs/interceptors
) should be able to mock requests from the Stripe SDK without having to set thehttpClient
configuration option.Code snippets
No response
OS
macOS
Node version
Node v20.16.0
Library version
stripe-node 17.2.1
API version
2024-09-30.acacia
Additional context
I initially filed a bug report in the
nock
repo: https://github.com/nock/nock/issues/2785It appears that this is happening due to a known limitation where
@mswjs/interceptors
is unable to intercept certain requests withnode:http
. The maintainer documented a way to fix this here: https://github.com/mswjs/msw/issues/2259#issuecomment-2379379566