node/test/parallel/test-http-outgoing-finished.js
Robert Nagy 52546c091d
stream: finished waits for 'close' on OutgoingMessage
Don't invoke finished callback until OutgoingMessagehas
emitted 'close'.

PR-URL: https://github.com/nodejs/node/pull/36648
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2021-01-11 11:39:33 -08:00

33 lines
673 B
JavaScript

'use strict';
const common = require('../common');
const { finished } = require('stream');
const http = require('http');
const assert = require('assert');
const server = http.createServer(function(req, res) {
let closed = false;
res
.on('close', common.mustCall(() => {
closed = true;
finished(res, common.mustCall(() => {
server.close();
}));
}))
.end();
finished(res, common.mustCall(() => {
assert.strictEqual(closed, true);
}));
}).listen(0, function() {
http
.request({
port: this.address().port,
method: 'GET'
})
.on('response', function(res) {
res.resume();
})
.end();
});