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