The native Response.error() can be used to return a network error in intercepted requests. MSW supports it as documented here.
This might finally allow Zimic to reject unhandled requests in local interceptors and make the behavior consistent with remote interceptors. I'll look more into it and update this issue accordingly.
Proposal
We should support choosing whether to bypass or reject unhandled requests in local and remote interceptors.
const interceptor = httpInterceptor.create<Schema>({
type: 'local',
// ...
onUnhandledRequest: 'bypass' | 'reject', // local interceptors can bypass or reject
});
const interceptor = httpInterceptor.create<Schema>({
type: 'remote',
// ...
onUnhandledRequest: 'reject', // remote interceptors can only reject
});
const interceptor = httpInterceptor.create<Schema>({
// ...
// using an object to customize the logging behavior
onUnhandledRequest: { action: 'bypass', log: true },
});
const interceptor = httpInterceptor.create<Schema>({
// ...
// using an factory for maximum flexibility
onUnhandledRequest: (request) => {
if (request.url.includes('localhost') {
return { action: 'bypass', log: false }
}
if (request.url.endsWith('/error') {
return 'reject'
}
return { action: 'bypass', log: true }
},
});
When using httpInterceptor.defaults, we could have a similar structure.
The native
Response.error()
can be used to return a network error in intercepted requests. MSW supports it as documented here.This might finally allow Zimic to reject unhandled requests in local interceptors and make the behavior consistent with remote interceptors. I'll look more into it and update this issue accordingly.
Proposal
We should support choosing whether to bypass or reject unhandled requests in local and remote interceptors.
When using
httpInterceptor.defaults
, we could have a similar structure.