1'use strict'; 2// Flags: --expose-internals 3const common = require('../common'); 4const assert = require('assert'); 5const net = require('net'); 6const { normalizedArgsSymbol } = require('internal/net'); 7 8function validateNormalizedArgs(input, output) { 9 const args = net._normalizeArgs(input); 10 11 assert.deepStrictEqual(args, output); 12 assert.strictEqual(args[normalizedArgsSymbol], true); 13} 14 15// Test creation of normalized arguments. 16const res = [{}, null]; 17res[normalizedArgsSymbol] = true; 18validateNormalizedArgs([], res); 19res[0].port = 1234; 20validateNormalizedArgs([{ port: 1234 }], res); 21res[1] = assert.fail; 22validateNormalizedArgs([{ port: 1234 }, assert.fail], res); 23 24// Connecting to the server should fail with a standard array. 25{ 26 const server = net.createServer(common.mustNotCall('should not connect')); 27 28 server.listen(common.mustCall(() => { 29 const possibleErrors = ['ECONNREFUSED', 'EADDRNOTAVAIL']; 30 const port = server.address().port; 31 const socket = new net.Socket(); 32 33 socket.on('error', common.mustCall((err) => { 34 assert(possibleErrors.includes(err.code)); 35 assert(possibleErrors.includes(err.errno)); 36 assert.strictEqual(err.syscall, 'connect'); 37 server.close(); 38 })); 39 40 socket.connect([{ port }, assert.fail]); 41 })); 42} 43 44// Connecting to the server should succeed with a normalized array. 45{ 46 const server = net.createServer(common.mustCall((connection) => { 47 connection.end(); 48 server.close(); 49 })); 50 51 server.listen(common.mustCall(() => { 52 const port = server.address().port; 53 const socket = new net.Socket(); 54 const args = net._normalizeArgs([{ port }, common.mustCall()]); 55 56 socket.connect(args); 57 })); 58} 59