48 lines
1.0 KiB
JavaScript
48 lines
1.0 KiB
JavaScript
|
'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();
|
||
|
}));
|