// deno-fmt-ignore-file // deno-lint-ignore-file // Copyright Joyent and Node contributors. All rights reserved. MIT license. // Taken from Node 16.13.0 // This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually 'use strict'; const common = require('../common'); const assert = require('assert'); const dgram = require('dgram'); const dns = require('dns'); { // Verify that the provided lookup function is called. const lookup = common.mustCall((host, family, callback) => { dns.lookup(host, family, callback); }); const socket = dgram.createSocket({ type: 'udp4', lookup }); socket.bind(common.mustCall(() => { socket.close(); })); } // TODO: unable to overwrite imports with spies // { // // Verify that lookup defaults to dns.lookup(). // const originalLookup = dns.lookup; // dns.lookup = common.mustCall((host, family, callback) => { // dns.lookup = originalLookup; // originalLookup(host, family, callback); // }); // const socket = dgram.createSocket({ type: 'udp4' }); // socket.bind(common.mustCall(() => { // socket.close(); // })); // } { // Verify that non-functions throw. [null, true, false, 0, 1, NaN, '', 'foo', {}, Symbol()].forEach((value) => { assert.throws(() => { dgram.createSocket({ type: 'udp4', lookup: value }); }, { code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', message: 'The "lookup" argument must be of type function.' + common.invalidArgTypeHelper(value) }); }); }