1'use strict';
2
3const common = require('../common');
4
5if (!common.hasCrypto)
6  common.skip('missing crypto');
7const assert = require('assert');
8const http2 = require('http2');
9const util = require('util');
10
11const server = http2.createServer();
12server.on('stream', common.mustCall((stream) => {
13  stream.respond();
14  stream.end('ok');
15}));
16server.listen(0, common.mustCall(() => {
17  const connect = util.promisify(http2.connect);
18
19  connect(`http://localhost:${server.address().port}`)
20    .then(common.mustCall((client) => {
21      assert(client);
22      const req = client.request();
23      let data = '';
24      req.setEncoding('utf8');
25      req.on('data', (chunk) => data += chunk);
26      req.on('end', common.mustCall(() => {
27        assert.strictEqual(data, 'ok');
28        client.close();
29        server.close();
30      }));
31    }));
32}));
33