Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit c8a069e

Browse filesBrowse files
hiroppyItalo A. Casas
authored andcommitted
test: improving coverage of dns-lookup
PR-URL: #10844 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Italo A. Casas <me@italoacasas.com>
1 parent 939517a commit c8a069e
Copy full SHA for c8a069e

File tree

Expand file treeCollapse file tree

2 files changed

+89
-25
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

2 files changed

+89
-25
lines changed
Open diff view settings
Collapse file

‎test/parallel/test-dns-lookup-cb-error.js‎

Copy file name to clipboardExpand all lines: test/parallel/test-dns-lookup-cb-error.js
-25Lines changed: 0 additions & 25 deletions
This file was deleted.
Collapse file

‎test/parallel/test-dns-lookup.js‎

Copy file name to clipboard
+89Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
'use strict';
2+
const common = require('../common');
3+
const assert = require('assert');
4+
const cares = process.binding('cares_wrap');
5+
const dns = require('dns');
6+
7+
// Stub `getaddrinfo` to *always* error.
8+
cares.getaddrinfo = () => process.binding('uv').UV_ENOENT;
9+
10+
assert.throws(() => {
11+
dns.lookup(1, {});
12+
}, /^TypeError: Invalid arguments: hostname must be a string or falsey$/);
13+
14+
assert.throws(() => {
15+
dns.lookup(false, 'cb');
16+
}, /^TypeError: Invalid arguments: callback must be passed$/);
17+
18+
assert.throws(() => {
19+
dns.lookup(false, 'options', 'cb');
20+
}, /^TypeError: Invalid arguments: callback must be passed$/);
21+
22+
assert.throws(() => {
23+
dns.lookup(false, {
24+
hints: 100,
25+
family: 0,
26+
all: false
27+
}, () => {});
28+
}, /^TypeError: Invalid argument: hints must use valid flags$/);
29+
30+
assert.throws(() => {
31+
dns.lookup(false, {
32+
hints: 0,
33+
family: 20,
34+
all: false
35+
}, () => {});
36+
}, /^TypeError: Invalid argument: family must be 4 or 6$/);
37+
38+
assert.doesNotThrow(() => {
39+
dns.lookup(false, {
40+
hints: 0,
41+
family: 0,
42+
all: true
43+
}, common.mustCall((error, result, addressType) => {
44+
assert.ifError(error);
45+
assert.deepStrictEqual(result, []);
46+
assert.strictEqual(addressType, undefined);
47+
}));
48+
});
49+
50+
assert.doesNotThrow(() => {
51+
dns.lookup('127.0.0.1', {
52+
hints: 0,
53+
family: 4,
54+
all: true
55+
}, common.mustCall((error, result, addressType) => {
56+
assert.ifError(error);
57+
assert.deepStrictEqual(result, [{
58+
address: '127.0.0.1',
59+
family: 4
60+
}]);
61+
assert.strictEqual(addressType, undefined);
62+
}));
63+
});
64+
65+
assert.doesNotThrow(() => {
66+
dns.lookup('127.0.0.1', {
67+
hints: 0,
68+
family: 4,
69+
all: false
70+
}, common.mustCall((error, result, addressType) => {
71+
assert.ifError(error);
72+
assert.deepStrictEqual(result, '127.0.0.1');
73+
assert.strictEqual(addressType, 4);
74+
}));
75+
});
76+
77+
assert.doesNotThrow(() => {
78+
let tickValue = 0;
79+
80+
dns.lookup('example.com', common.mustCall((error, result, addressType) => {
81+
assert(error);
82+
assert.strictEqual(tickValue, 1);
83+
assert.strictEqual(error.code, 'ENOENT');
84+
}));
85+
86+
// Make sure that the error callback is called
87+
// on next tick.
88+
tickValue = 1;
89+
});

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.