'use strict';
const common = require('../common');
const assert = require('assert');
const net = require('net');

const server = net.createServer(function(socket) {
  socket.pipe(socket);
}).listen(0, common.mustCall(function() {
  const conn = net.connect(this.address().port);
  let received = '';

  conn.setEncoding('utf8');
  conn.write('before');
  conn.on('connect', function() {
    conn.write(' after');
  });
  conn.on('data', function(buf) {
    received += buf;
    conn.end();
  });
  conn.on('end', common.mustCall(function() {
    server.close();
    assert.strictEqual(received, 'before after');
  }));
}));
