|
11 | 11 | const{ mustCall }=require('../common'); |
12 | 12 | constassert=require('assert'); |
13 | 13 | constdns=require('dns'); |
| 14 | +const{ addresses }=require('../common/internet'); |
14 | 15 |
|
15 | | -const[host,expectedAddress]=['straße.de','81.169.145.78']; |
| 16 | +constfixture={ |
| 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 | | -newdns.promises.Resolver().resolve4(host).then(mustCall((addresses)=>{ |
32 | | -assert.deepStrictEqual(addresses,[expectedAddress]); |
| 48 | +constp=newdns.promises.Resolver().resolve4(fixture.hostname); |
| 49 | +p.then(mustCall((addresses)=>{ |
| 50 | +assert.deepStrictEqual(addresses,[fixture.expectedAddress]); |
33 | 51 | })); |
0 commit comments