1'use strict';
2
3const common = require('../common');
4const assert = require('node:assert');
5const http = require('node:http');
6
7const headers = { foo: 'Bar' };
8const server = http.createServer(common.mustCall((req, res) => {
9  assert.strictEqual(req.url, '/ping?q=term');
10  assert.strictEqual(req.headers?.foo, headers.foo);
11  req.resume();
12  req.on('end', () => {
13    res.writeHead(200);
14    res.end('pong');
15  });
16}));
17
18server.listen(0, common.localhostIPv4, () => {
19  const { address, port } = server.address();
20  const url = new URL(`http://${address}:${port}/ping?q=term`);
21  url.headers = headers;
22  const clientReq = http.request(url);
23  clientReq.on('close', common.mustCall(() => {
24    server.close();
25  }));
26  clientReq.end();
27});
28