summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/internal/http2/compat.js2
-rw-r--r--test/parallel/test-http2-compat-serverresponse-end.js28
2 files changed, 29 insertions, 1 deletions
diff --git a/lib/internal/http2/compat.js b/lib/internal/http2/compat.js
index cad6efc733..551c9f1efa 100644
--- a/lib/internal/http2/compat.js
+++ b/lib/internal/http2/compat.js
@@ -648,7 +648,7 @@ class Http2ServerResponse extends Stream {
if ((state.closed || state.ending) &&
state.headRequest === stream.headRequest) {
- return false;
+ return this;
}
if (typeof chunk === 'function') {
diff --git a/test/parallel/test-http2-compat-serverresponse-end.js b/test/parallel/test-http2-compat-serverresponse-end.js
index d7aaebca3d..e7972c2fe0 100644
--- a/test/parallel/test-http2-compat-serverresponse-end.js
+++ b/test/parallel/test-http2-compat-serverresponse-end.js
@@ -61,6 +61,34 @@ const {
}
{
+ // Http2ServerResponse.end should return self after end
+ const server = createServer(mustCall((request, response) => {
+ strictEqual(response, response.end());
+ strictEqual(response, response.end());
+ server.close();
+ }));
+ server.listen(0, mustCall(() => {
+ const { port } = server.address();
+ const url = `http://localhost:${port}`;
+ const client = connect(url, mustCall(() => {
+ const headers = {
+ ':path': '/',
+ ':method': 'GET',
+ ':scheme': 'http',
+ ':authority': `localhost:${port}`
+ };
+ const request = client.request(headers);
+ request.setEncoding('utf8');
+ request.on('end', mustCall(() => {
+ client.close();
+ }));
+ request.end();
+ request.resume();
+ }));
+ }));
+}
+
+{
// Http2ServerResponse.end can omit encoding arg, sets it to utf-8
const server = createServer(mustCall((request, response) => {
response.end('test\uD83D\uDE00', mustCall(() => {