Your IP : 216.73.216.17


Current Path : /etc/kibana/node_modules/socket-location/
Upload File :
Current File : //etc/kibana/node_modules/socket-location/test.js

const { promisify } = require('util')
const net = require('net')
const tap = require('tap')
const awaitEvent = require('await-event')
const socketLocation = require('./')

tap.test('before connect', async t => {
  const { port, close } = await makeServer()
  t.on('end', close)

  const client = net.connect(port)
  t.on('end', () => client.destroy())

  const location = await socketLocation(client)
  t.equal(location, `127.0.0.1:${port}`)
  t.end()
})

tap.test('after connect', async t => {
  const { port, close } = await makeServer()
  t.on('end', close)

  const client = net.connect(port)
  t.on('end', () => client.destroy())

  await awaitEvent(client, 'connect')

  const location = await socketLocation(client)
  t.equal(location, `127.0.0.1:${port}`)
  t.end()
})

function makeServer () {
  return new Promise(resolve => {
    const server = net.createServer(socket => {
      socket.end('hello')
      socket.destroy()
    })

    server.listen(0, '0.0.0.0', () => {
      resolve({
        port: server.address().port,
        close: promisify(server.close.bind(server))
      })
    })
  })
}