nodejs/test/parallel/test-http-write-head-after-set-header.js

48 lines
1.0 KiB
JavaScript
Raw Normal View History

'use strict';
const common = require('../common');
const Countdown = require('../common/countdown');
const assert = require('assert');
const { createServer, request } = require('http');
const server = createServer(common.mustCall((req, res) => {
if (req.url.includes('setHeader')) {
res.setHeader('set-val', 'abc');
}
res.writeHead(200, [
'array-val', '1',
'array-val', '2',
]);
res.end();
}, 2));
const countdown = new Countdown(2, () => server.close());
server.listen(0, common.mustCall(() => {
request({
port: server.address().port
}, common.mustCall((res) => {
assert.deepStrictEqual(res.rawHeaders.slice(0, 4), [
'array-val', '1',
'array-val', '2',
]);
countdown.dec();
})).end();
request({
port: server.address().port,
path: '/?setHeader'
}, common.mustCall((res) => {
assert.deepStrictEqual(res.rawHeaders.slice(0, 6), [
'set-val', 'abc',
'array-val', '1',
'array-val', '2',
]);
countdown.dec();
})).end();
}));