node/test/parallel/test-dns-setlocaladdress.js
Rich Trott e53f232291 test: add missing test coverage for setLocalAddress()
Add missing coverage for setLocalAddress() method of dns.Resolver class.
The case where a valid IPv4 argument was supplied along with an invalid
IPv6 argument was not being checked.

Refs: https://coverage.nodejs.org/coverage-85b42af4398073f8/lib/internal/dns/utils.js.html#L124

PR-URL: https://github.com/nodejs/node/pull/36039
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
2020-11-11 05:10:56 -08:00

41 lines
1.1 KiB
JavaScript

'use strict';
require('../common');
const assert = require('assert');
const dns = require('dns');
const resolver = new dns.Resolver();
const promiseResolver = new dns.promises.Resolver();
// Verifies that setLocalAddress succeeds with IPv4 and IPv6 addresses
{
resolver.setLocalAddress('127.0.0.1');
resolver.setLocalAddress('::1');
resolver.setLocalAddress('127.0.0.1', '::1');
promiseResolver.setLocalAddress('127.0.0.1', '::1');
}
// Verify that setLocalAddress throws if called with an invalid address
{
assert.throws(() => {
resolver.setLocalAddress('127.0.0.1', '127.0.0.1');
}, Error);
assert.throws(() => {
resolver.setLocalAddress('::1', '::1');
}, Error);
assert.throws(() => {
resolver.setLocalAddress('bad');
}, Error);
assert.throws(() => {
resolver.setLocalAddress(123);
}, { code: 'ERR_INVALID_ARG_TYPE' });
assert.throws(() => {
resolver.setLocalAddress('127.0.0.1', 42);
}, { code: 'ERR_INVALID_ARG_TYPE' });
assert.throws(() => {
resolver.setLocalAddress();
}, Error);
assert.throws(() => {
promiseResolver.setLocalAddress();
}, Error);
}