diff --git a/test/parallel/test-dns-promises-resolve.js b/test/parallel/test-dns-promises-resolve.js new file mode 100644 index 00000000000000..fcaa8977a5ba18 --- /dev/null +++ b/test/parallel/test-dns-promises-resolve.js @@ -0,0 +1,44 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); + +const dnsPromises = require('dns').promises; + +common.crashOnUnhandledRejection(); + +// Error when rrtype is invalid. +{ + const rrtype = 'DUMMY'; + common.expectsError( + () => dnsPromises.resolve('example.org', rrtype), + { + code: 'ERR_INVALID_OPT_VALUE', + type: TypeError, + message: `The value "${rrtype}" is invalid for option "rrtype"` + } + ); +} + +// Error when rrtype is a number. +{ + const rrtype = 0; + common.expectsError( + () => dnsPromises.resolve('example.org', rrtype), + { + code: 'ERR_INVALID_ARG_TYPE', + type: TypeError, + message: 'The "rrtype" argument must be of type string. ' + + `Received type ${typeof rrtype}` + } + ); +} + +// rrtype is undefined, it's same as resolve4 +{ + (async function() { + const rrtype = undefined; + const result = await dnsPromises.resolve('example.org', rrtype); + assert.ok(result !== undefined); + assert.ok(result.length > 0); + })(); +}