1'use strict'; 2const common = require('../common'); 3if (!common.hasCrypto) { 4 common.skip('missing crypto'); 5} 6 7const http2 = require('http2'); 8const assert = require('assert'); 9 10const server = http2.createServer(); 11 12server.on('session', common.mustCall(function(session) { 13 session.on('stream', common.mustCall(function(stream) { 14 stream.on('end', common.mustCall(function() { 15 this.respond({ 16 ':status': 200 17 }); 18 this.write('foo'); 19 this.destroy(); 20 })); 21 stream.resume(); 22 })); 23})); 24 25server.listen(0, function() { 26 const client = http2.connect(`http://localhost:${server.address().port}`); 27 const stream = client.request({ ':method': 'POST' }); 28 stream.on('response', common.mustCall(function(headers) { 29 assert.strictEqual(headers[':status'], 200); 30 })); 31 stream.on('close', common.mustCall(() => { 32 client.close(); 33 server.close(); 34 })); 35 stream.resume(); 36 stream.end(); 37}); 38