Skip to content
Permalink
Browse files

test: increase coverage for dns.promises.lookup()

Add coverage for uv_getaddrinfo() returning an error.

PR-URL: #27299
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  • Loading branch information...
Trott committed Apr 18, 2019
1 parent 0fc27f6 commit 7167eb2f12a5070c79d4373a0ac0010e6154c22e
Showing with 12 additions and 6 deletions.
  1. +12 −6 test/parallel/test-dns-lookup.js
@@ -4,12 +4,14 @@ const common = require('../common');
const assert = require('assert');
const { internalBinding } = require('internal/test/binding');
const cares = internalBinding('cares_wrap');

// Stub `getaddrinfo` to *always* error. This has to be done before we load the
// `dns` module to guarantee that the `dns` module uses the stub.
cares.getaddrinfo = () => internalBinding('uv').UV_ENOMEM;

const dns = require('dns');
const dnsPromises = dns.promises;

// Stub `getaddrinfo` to *always* error.
cares.getaddrinfo = () => internalBinding('uv').UV_ENOENT;

{
const err = {
code: 'ERR_INVALID_ARG_TYPE',
@@ -144,15 +146,19 @@ dns.lookup('127.0.0.1', {

let tickValue = 0;

// Should fail due to stub.
dns.lookup('example.com', common.mustCall((error, result, addressType) => {
assert(error);
assert.strictEqual(tickValue, 1);
assert.strictEqual(error.code, 'ENOENT');
assert.strictEqual(error.code, 'ENOMEM');
const descriptor = Object.getOwnPropertyDescriptor(error, 'message');
// The error message should be non-enumerable.
assert.strictEqual(descriptor.enumerable, false);
}));

// Make sure that the error callback is called
// on next tick.
// Make sure that the error callback is called on next tick.
tickValue = 1;

// Should fail due to stub.
assert.rejects(dnsPromises.lookup('example.com'),
{ code: 'ENOMEM', hostname: 'example.com' });

0 comments on commit 7167eb2

Please sign in to comment.
You can’t perform that action at this time.