Files
bun.sh/test/js/web/fetch/content-length.test.js
2024-10-21 00:28:02 -07:00

27 lines
976 B
JavaScript

const { createServer } = require("node:http");
// https://github.com/nodejs/undici/issues/1783
test("Content-Length is set when using a FormData body with fetch", async () => {
const { resolve, promise } = Promise.withResolvers();
const server = createServer((req, res) => {
// TODO: check the length's value once the boundary has a fixed length
expect("content-length" in req.headers).toBe(true); // request has content-length header
expect(Number.isNaN(Number(req.headers["content-length"]))).toBe(false); // content-length is a number
res.end();
}).listen(0, "127.0.0.1", resolve);
await promise;
const { port, address } = server.address();
const fd = new FormData();
fd.set("file", new Blob(["hello world 👋"], { type: "text/plain" }), "readme.md");
fd.set("string", "some string value");
await fetch(`http://${address}:${port}`, {
method: "POST",
body: fd,
});
await new Promise(resolve => server.close(resolve));
});