1'use strict'; 2const common = require('../common'); 3const { addresses } = require('../common/internet'); 4const assert = require('assert'); 5const dns = require('dns'); 6const resolver = new dns.promises.Resolver(); 7const dnsPromises = dns.promises; 8const promiseResolver = new dns.promises.Resolver(); 9 10{ 11 [ 12 null, 13 undefined, 14 Number(addresses.DNS4_SERVER), 15 addresses.DNS4_SERVER, 16 { 17 address: addresses.DNS4_SERVER 18 }, 19 ].forEach((val) => { 20 const errObj = { 21 code: 'ERR_INVALID_ARG_TYPE', 22 name: 'TypeError', 23 message: 'The "servers" argument must be an instance of Array.' + 24 common.invalidArgTypeHelper(val) 25 }; 26 assert.throws( 27 () => { 28 dns.setServers(val); 29 }, errObj 30 ); 31 assert.throws( 32 () => { 33 resolver.setServers(val); 34 }, errObj 35 ); 36 assert.throws( 37 () => { 38 dnsPromises.setServers(val); 39 }, errObj 40 ); 41 assert.throws( 42 () => { 43 promiseResolver.setServers(val); 44 }, errObj 45 ); 46 }); 47} 48 49{ 50 [ 51 [null], 52 [undefined], 53 [Number(addresses.DNS4_SERVER)], 54 [ 55 { 56 address: addresses.DNS4_SERVER 57 }, 58 ], 59 ].forEach((val) => { 60 const errObj = { 61 code: 'ERR_INVALID_ARG_TYPE', 62 name: 'TypeError', 63 message: 'The "servers[0]" argument must be of type string.' + 64 common.invalidArgTypeHelper(val[0]) 65 }; 66 assert.throws( 67 () => { 68 dns.setServers(val); 69 }, errObj 70 ); 71 assert.throws( 72 () => { 73 resolver.setServers(val); 74 }, errObj 75 ); 76 assert.throws( 77 () => { 78 dnsPromises.setServers(val); 79 }, errObj 80 ); 81 assert.throws( 82 () => { 83 promiseResolver.setServers(val); 84 }, errObj 85 ); 86 }); 87} 88 89// This test for 'dns/promises' 90{ 91 const { 92 setServers 93 } = require('dns/promises'); 94 95 // This should not throw any error. 96 (async () => { 97 setServers([ '127.0.0.1' ]); 98 })().then(common.mustCall()); 99 100 [ 101 [null], 102 [undefined], 103 [Number(addresses.DNS4_SERVER)], 104 [ 105 { 106 address: addresses.DNS4_SERVER 107 }, 108 ], 109 ].forEach((val) => { 110 const errObj = { 111 code: 'ERR_INVALID_ARG_TYPE', 112 name: 'TypeError', 113 message: 'The "servers[0]" argument must be of type string.' + 114 common.invalidArgTypeHelper(val[0]) 115 }; 116 assert.throws(() => { 117 setServers(val); 118 }, errObj); 119 }); 120} 121