node/test/parallel/test-http-outgoing-destroyed.js
Robert Nagy d385106302
http: make OutgoingMessage more streamlike
Implement missing getters error & closed. Add support for
proper "writable" check through `isWritable` helper.

We cannot fix the `OutgoingMessage.writable` property as that
would break the ecosystem.

PR-URL: https://github.com/nodejs/node/pull/45672
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2022-12-02 10:40:44 +01:00

56 lines
1.3 KiB
JavaScript

'use strict';
const common = require('../common');
const http = require('http');
const assert = require('assert');
{
const server = http.createServer(common.mustCall((req, res) => {
assert.strictEqual(res.closed, false);
req.pipe(res);
res.on('error', common.mustNotCall());
res.on('close', common.mustCall(() => {
assert.strictEqual(res.closed, true);
res.end('asd');
process.nextTick(() => {
server.close();
});
}));
})).listen(0, () => {
http
.request({
port: server.address().port,
method: 'PUT'
})
.on('response', (res) => {
res.destroy();
})
.write('asd');
});
}
{
const server = http.createServer(common.mustCall((req, res) => {
assert.strictEqual(res.closed, false);
req.pipe(res);
res.on('error', common.mustNotCall());
res.on('close', common.mustCall(() => {
assert.strictEqual(res.closed, true);
process.nextTick(() => {
server.close();
});
}));
const err = new Error('Destroy test');
res.destroy(err);
assert.strictEqual(res.errored, err);
})).listen(0, () => {
http
.request({
port: server.address().port,
method: 'PUT'
})
.on('error', common.mustCall())
.write('asd');
});
}