1'use strict'; 2const { mustCall } = require('../common'); 3const assert = require('assert'); 4const { createServer } = require('http'); 5const { createConnection } = require('net'); 6 7const server = createServer(); 8 9server.on('request', mustCall((req, res) => { 10 res.write('asd', () => { 11 res.socket.emit('error', new Error('kaboom')); 12 }); 13})); 14 15server.listen(0, mustCall(() => { 16 const c = createConnection(server.address().port); 17 let received = ''; 18 19 c.on('connect', mustCall(() => { 20 c.write('GET /blah HTTP/1.1\r\n\r\n'); 21 })); 22 c.on('data', mustCall((data) => { 23 received += data.toString(); 24 })); 25 c.on('end', mustCall(() => { 26 // Should not include anything else after asd. 27 assert.strictEqual(received.indexOf('asd\r\n'), received.length - 5); 28 c.end(); 29 })); 30 c.on('close', mustCall(() => server.close())); 31})); 32