forked from nodejs/undici
/
content-length.js
29 lines (24 loc) · 959 Bytes
/
content-length.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'use strict'
const { test } = require('tap')
const { createServer } = require('http')
const { once } = require('events')
const { Blob } = require('buffer')
const { fetch, FormData } = require('../..')
// https://github.com/nodejs/undici/issues/1783
test('Content-Length is set when using a FormData body with fetch', async (t) => {
const server = createServer((req, res) => {
// TODO: check the length's value once the boundary has a fixed length
t.ok('content-length' in req.headers) // request has content-length header
t.ok(!Number.isNaN(Number(req.headers['content-length'])))
res.end()
}).listen(0)
await once(server, 'listening')
t.teardown(server.close.bind(server))
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://localhost:${server.address().port}`, {
method: 'POST',
body: fd
})
})