node/test/parallel/test-http2-compat-write-head-after-close.js
Shima Ryuhei b1402835a5
http2: skip writeHead if stream is closed
Fixes: https://github.com/nodejs/node/issues/57416
PR-URL: https://github.com/nodejs/node/pull/57686
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tim Perry <pimterry@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com>
2025-04-04 15:07:09 +00:00

24 lines
666 B
JavaScript

'use strict';
const common = require('../common');
if (!common.hasCrypto) { common.skip('missing crypto'); };
const h2 = require('http2');
const server = h2.createServer((req, res) => {
const stream = req.stream;
stream.close();
res.writeHead(200, { 'content-type': 'text/plain' });
});
server.listen(0, common.mustCall(() => {
const port = server.address().port;
const client = h2.connect(`http://localhost:${port}`);
const req = client.request({ ':path': '/' });
req.on('response', common.mustNotCall('head after close should not be sent'));
req.on('end', common.mustCall(() => {
client.close();
server.close();
}));
req.end();
}));