// Flags: --expose-internals 'use strict'; const common = require('../common'); const assert = require('assert'); const { internalBinding } = require('internal/test/binding'); const cares = internalBinding('cares_wrap'); cares.getaddrinfo = () => internalBinding('uv').UV_ENOMEM; // This test ensures that dns.lookup issue a DeprecationWarning // when invalid options type is given const dnsPromises = require('dns/promises'); common.expectWarning({ 'internal/test/binding': [ 'These APIs are for internal testing only. Do not use them.', ], }); assert.throws(() => { dnsPromises.lookup('127.0.0.1', { hints: '-1' }); }, { code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError' }); assert.throws(() => dnsPromises.lookup('127.0.0.1', { hints: -1 }), { code: 'ERR_INVALID_ARG_VALUE' }); assert.throws(() => dnsPromises.lookup('127.0.0.1', { family: '6' }), { code: 'ERR_INVALID_ARG_VALUE' }); assert.throws(() => dnsPromises.lookup('127.0.0.1', { all: 'true' }), { code: 'ERR_INVALID_ARG_TYPE' }); assert.throws(() => dnsPromises.lookup('127.0.0.1', { verbatim: 'true' }), { code: 'ERR_INVALID_ARG_TYPE' }); assert.throws(() => dnsPromises.lookup('127.0.0.1', '6'), { code: 'ERR_INVALID_ARG_TYPE' });