mirror of https://github.com/lukechilds/node.git
Browse Source
PR-URL: https://github.com/nodejs/node/pull/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>v6.x
abouthiroppy
8 years ago
committed by
Myles Borins
2 changed files with 89 additions and 25 deletions
@ -1,25 +0,0 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
const assert = require('assert'); |
|||
const cares = process.binding('cares_wrap'); |
|||
|
|||
const dns = require('dns'); |
|||
|
|||
// Stub `getaddrinfo` to *always* error.
|
|||
cares.getaddrinfo = function() { |
|||
return process.binding('uv').UV_ENOENT; |
|||
}; |
|||
|
|||
assert.doesNotThrow(() => { |
|||
var tickValue = 0; |
|||
|
|||
dns.lookup('example.com', common.mustCall((error, result, addressType) => { |
|||
assert(error); |
|||
assert.strictEqual(tickValue, 1); |
|||
assert.strictEqual(error.code, 'ENOENT'); |
|||
})); |
|||
|
|||
// Make sure that the error callback is called
|
|||
// on next tick.
|
|||
tickValue = 1; |
|||
}); |
@ -0,0 +1,89 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
const assert = require('assert'); |
|||
const cares = process.binding('cares_wrap'); |
|||
const dns = require('dns'); |
|||
|
|||
// Stub `getaddrinfo` to *always* error.
|
|||
cares.getaddrinfo = () => process.binding('uv').UV_ENOENT; |
|||
|
|||
assert.throws(() => { |
|||
dns.lookup(1, {}); |
|||
}, /^TypeError: Invalid arguments: hostname must be a string or falsey$/); |
|||
|
|||
assert.throws(() => { |
|||
dns.lookup(false, 'cb'); |
|||
}, /^TypeError: Invalid arguments: callback must be passed$/); |
|||
|
|||
assert.throws(() => { |
|||
dns.lookup(false, 'options', 'cb'); |
|||
}, /^TypeError: Invalid arguments: callback must be passed$/); |
|||
|
|||
assert.throws(() => { |
|||
dns.lookup(false, { |
|||
hints: 100, |
|||
family: 0, |
|||
all: false |
|||
}, () => {}); |
|||
}, /^TypeError: Invalid argument: hints must use valid flags$/); |
|||
|
|||
assert.throws(() => { |
|||
dns.lookup(false, { |
|||
hints: 0, |
|||
family: 20, |
|||
all: false |
|||
}, () => {}); |
|||
}, /^TypeError: Invalid argument: family must be 4 or 6$/); |
|||
|
|||
assert.doesNotThrow(() => { |
|||
dns.lookup(false, { |
|||
hints: 0, |
|||
family: 0, |
|||
all: true |
|||
}, common.mustCall((error, result, addressType) => { |
|||
assert.ifError(error); |
|||
assert.deepStrictEqual(result, []); |
|||
assert.strictEqual(addressType, undefined); |
|||
})); |
|||
}); |
|||
|
|||
assert.doesNotThrow(() => { |
|||
dns.lookup('127.0.0.1', { |
|||
hints: 0, |
|||
family: 4, |
|||
all: true |
|||
}, common.mustCall((error, result, addressType) => { |
|||
assert.ifError(error); |
|||
assert.deepStrictEqual(result, [{ |
|||
address: '127.0.0.1', |
|||
family: 4 |
|||
}]); |
|||
assert.strictEqual(addressType, undefined); |
|||
})); |
|||
}); |
|||
|
|||
assert.doesNotThrow(() => { |
|||
dns.lookup('127.0.0.1', { |
|||
hints: 0, |
|||
family: 4, |
|||
all: false |
|||
}, common.mustCall((error, result, addressType) => { |
|||
assert.ifError(error); |
|||
assert.deepStrictEqual(result, '127.0.0.1'); |
|||
assert.strictEqual(addressType, 4); |
|||
})); |
|||
}); |
|||
|
|||
assert.doesNotThrow(() => { |
|||
let tickValue = 0; |
|||
|
|||
dns.lookup('example.com', common.mustCall((error, result, addressType) => { |
|||
assert(error); |
|||
assert.strictEqual(tickValue, 1); |
|||
assert.strictEqual(error.code, 'ENOENT'); |
|||
})); |
|||
|
|||
// Make sure that the error callback is called
|
|||
// on next tick.
|
|||
tickValue = 1; |
|||
}); |
Loading…
Reference in new issue