|
11 | 11 | const { mustCall } = require('../common');
|
12 | 12 | const assert = require('assert');
|
13 | 13 | const dns = require('dns');
|
| 14 | +const { addresses } = require('../common/internet'); |
14 | 15 |
|
15 |
| -const [host, expectedAddress] = ['straße.de', '81.169.145.78']; |
| 16 | +const fixture = { |
| 17 | + hostname: 'straße.de', |
| 18 | + expectedAddress: '81.169.145.78', |
| 19 | + dnsServer: addresses.DNS4_SERVER |
| 20 | +}; |
16 | 21 |
|
17 |
| -dns.lookup(host, mustCall((err, address) => { |
| 22 | +// Explicitly use well behaved DNS servers that are known to be able to resolve |
| 23 | +// the query (which is a.k.a xn--strae-oqa.de). |
| 24 | +dns.setServers([fixture.dnsServer]); |
| 25 | + |
| 26 | +dns.lookup(fixture.hostname, mustCall((err, address) => { |
| 27 | + if (err && err.errno === 'ESERVFAIL') { |
| 28 | + assert.ok(err.message.includes('queryA ESERVFAIL straße.de')); |
| 29 | + return; |
| 30 | + } |
18 | 31 | assert.ifError(err);
|
19 |
| - assert.strictEqual(address, expectedAddress); |
| 32 | + assert.strictEqual(address, fixture.expectedAddress); |
20 | 33 | }));
|
21 | 34 |
|
22 |
| -dns.promises.lookup(host).then(mustCall(({ address }) => { |
23 |
| - assert.strictEqual(address, expectedAddress); |
| 35 | +dns.promises.lookup(fixture.hostname).then(mustCall(({ address }) => { |
| 36 | + assert.strictEqual(address, fixture.expectedAddress); |
| 37 | +}).catch((err) => { |
| 38 | + if (err && err.errno === 'ESERVFAIL') { |
| 39 | + assert.ok(err.message.includes('queryA ESERVFAIL straße.de')); |
| 40 | + } |
24 | 41 | }));
|
25 | 42 |
|
26 |
| -dns.resolve4(host, mustCall((err, addresses) => { |
| 43 | +dns.resolve4(fixture.hostname, mustCall((err, addresses) => { |
27 | 44 | assert.ifError(err);
|
28 |
| - assert.deepStrictEqual(addresses, [expectedAddress]); |
| 45 | + assert.deepStrictEqual(addresses, [fixture.expectedAddress]); |
29 | 46 | }));
|
30 | 47 |
|
31 |
| -new dns.promises.Resolver().resolve4(host).then(mustCall((addresses) => { |
32 |
| - assert.deepStrictEqual(addresses, [expectedAddress]); |
| 48 | +const p = new dns.promises.Resolver().resolve4(fixture.hostname); |
| 49 | +p.then(mustCall((addresses) => { |
| 50 | + assert.deepStrictEqual(addresses, [fixture.expectedAddress]); |
33 | 51 | }));
|
0 commit comments