1'use strict';
2const common = require('../common');
3if (!common.hasCrypto)
4  common.skip('missing crypto');
5const fixtures = require('../common/fixtures');
6const assert = require('assert');
7const https = require('https');
8
9// Disable strict server certificate validation by the client
10process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
11
12const options = {
13  key: fixtures.readKey('agent1-key.pem'),
14  cert: fixtures.readKey('agent1-cert.pem')
15};
16
17const server = https.Server(options, common.mustCall((req, res) => {
18  res.writeHead(200);
19  res.end('Hello, World!');
20}));
21
22server.listen(0, common.mustCall(() => {
23  const agent = new https.Agent();
24  const name = agent.getName({ port: server.address().port });
25  https.globalAgent = agent;
26
27  makeRequest();
28  assert(name in agent.sockets); // Agent has indeed been used
29}));
30
31function makeRequest() {
32  const req = https.get({
33    port: server.address().port
34  });
35  req.on('close', () =>
36    server.close());
37}
38