-
-
Notifications
You must be signed in to change notification settings - Fork 131
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
req.write should throw error where chunk is undefined #458
Comments
Hi, @mikicho. This is a good suggestion. Counting on I hate to re-create internal Node errors so let's brainstorm how we can achieve this behavior without repeating Node. |
@kettanaito It seems like the input validation is the first thing Node does before trying to write into the socket (source) so we can do something like: class NodeClientRequest {
...
write(...args) {
...
const [chunk, encoding, callback] = normalizeClientRequestWriteArgs(args)
if (!chunk) {
super.write()
}
}
} This test passes: it('does not allow empty chunk', async () => {
const emitter = new Emitter<HttpRequestEventMap>()
const request = new NodeClientRequest(
normalizeClientRequestArgs('http:', httpServer.http.url('/comment'), {
method: 'POST',
}),
{
emitter,
logger,
}
)
// @ts-expect-error - test undefined chunk
expect(() => request.write()).toThrow('The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received undefined')
// @ts-expect-error - test null chunk
expect(() => request.write(null)).toThrow('May not write null values to stream')
}) |
I don't want to forget what I did here (or that I did lol), so I opened a PR: #493 Happy holidays :) |
Released: v0.32.0 🎉This has been released in v0.32.0! Make sure to always update to the latest version ( Predictable release automation by @ossjs/release. |
https://github.com/mswjs/interceptors/blob/main/src/interceptors/ClientRequest/NodeClientRequest.ts#L101
chunk
must not be undefined and throw:I can open a PR, but because you ignored this case positively, I want to ensure I don't miss something.
About the solution, we can either:
The text was updated successfully, but these errors were encountered: