'use strict'; const common = require('../common'); const http = require('http'); const assert = require('assert'); { const server = http.createServer(common.mustCall(function(req, res) { req.on('aborted', common.mustCall(function() { assert.strictEqual(this.aborted, true); })); req.on('error', common.mustCall(function(err) { assert.strictEqual(err.code, 'ECONNRESET'); assert.strictEqual(err.message, 'aborted'); server.close(); })); assert.strictEqual(req.aborted, false); res.write('hello'); })); server.listen(0, common.mustCall(() => { const req = http.get({ port: server.address().port, headers: { connection: 'keep-alive' } }, common.mustCall((res) => { res.on('aborted', common.mustCall(() => { assert.strictEqual(res.aborted, true); })); res.on('error', common.expectsError({ code: 'ECONNRESET', message: 'aborted' })); req.abort(); })); })); } { // Don't crash if no 'error' handler on server request. const server = http.createServer(common.mustCall(function(req, res) { req.on('aborted', common.mustCall(function() { assert.strictEqual(this.aborted, true); server.close(); })); assert.strictEqual(req.aborted, false); res.write('hello'); })); server.listen(0, common.mustCall(() => { const req = http.get({ port: server.address().port, headers: { connection: 'keep-alive' } }, common.mustCall((res) => { res.on('aborted', common.mustCall(() => { assert.strictEqual(res.aborted, true); })); req.abort(); })); })); }