From 7f913293c1ac50b01dfc775fe4861f362bcf624a Mon Sep 17 00:00:00 2001 From: Anto Aravinth Date: Sat, 3 Nov 2018 22:13:33 +0530 Subject: [PATCH] http2: add test case for goaway PR-URL: https://github.com/nodejs/node/pull/24054 Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater --- test/parallel/test-http2-client-destroy.js | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/test/parallel/test-http2-client-destroy.js b/test/parallel/test-http2-client-destroy.js index 43fc6819e21..0a538e0f9e0 100644 --- a/test/parallel/test-http2-client-destroy.js +++ b/test/parallel/test-http2-client-destroy.js @@ -137,3 +137,30 @@ const Countdown = require('../common/countdown'); req.destroy(); })); } + +// test close before connect +{ + const server = h2.createServer(); + + server.on('stream', common.mustNotCall()); + server.listen(0, common.mustCall(() => { + const client = h2.connect(`http://localhost:${server.address().port}`); + const socket = client[kSocket]; + socket.on('close', common.mustCall(() => { + assert(socket.destroyed); + })); + + const req = client.request(); + // should throw goaway error + req.on('error', common.expectsError({ + code: 'ERR_HTTP2_GOAWAY_SESSION', + type: Error, + message: 'New streams cannot be created after receiving a GOAWAY' + })); + + client.close(); + req.resume(); + req.on('end', common.mustCall()); + req.on('close', common.mustCall(() => server.close())); + })); +}