• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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