summaryrefslogtreecommitdiff
path: root/test/parallel/test-net-options-lookup.js
blob: 5661aee841d197140bd20ba3e5f78b3fc381fc88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
'use strict';
const common = require('../common');
const net = require('net');

['foobar', 1, {}, []].forEach((input) => connectThrows(input));

// Using port 0 as lookup is emitted before connecting.
function connectThrows(input) {
  const opts = {
    host: 'localhost',
    port: 0,
    lookup: input
  };

  common.expectsError(() => {
    net.connect(opts);
  }, {
    code: 'ERR_INVALID_ARG_TYPE',
    type: TypeError
  });
}

connectDoesNotThrow(() => {});

function connectDoesNotThrow(input) {
  const opts = {
    host: 'localhost',
    port: 0,
    lookup: input
  };

  return net.connect(opts);
}

{
  // Verify that an error is emitted when an invalid address family is returned.
  const s = connectDoesNotThrow((host, options, cb) => {
    cb(null, '127.0.0.1', 100);
  });

  s.on('error', common.expectsError({
    code: 'ERR_INVALID_ADDRESS_FAMILY',
    host: 'localhost',
    port: 0,
    message: 'Invalid address family: 100 localhost:0'
  }));
}