summaryrefslogtreecommitdiff
path: root/tests/node_compat/test/parallel/test-dgram-custom-lookup.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/node_compat/test/parallel/test-dgram-custom-lookup.js')
-rw-r--r--tests/node_compat/test/parallel/test-dgram-custom-lookup.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/node_compat/test/parallel/test-dgram-custom-lookup.js b/tests/node_compat/test/parallel/test-dgram-custom-lookup.js
new file mode 100644
index 000000000..ca3bd3df3
--- /dev/null
+++ b/tests/node_compat/test/parallel/test-dgram-custom-lookup.js
@@ -0,0 +1,56 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 16.13.0
+// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
+
+'use strict';
+const common = require('../common');
+const assert = require('assert');
+const dgram = require('dgram');
+const dns = require('dns');
+
+{
+ // Verify that the provided lookup function is called.
+ const lookup = common.mustCall((host, family, callback) => {
+ dns.lookup(host, family, callback);
+ });
+
+ const socket = dgram.createSocket({ type: 'udp4', lookup });
+
+ socket.bind(common.mustCall(() => {
+ socket.close();
+ }));
+}
+
+// TODO: unable to overwrite imports with spies
+// {
+// // Verify that lookup defaults to dns.lookup().
+// const originalLookup = dns.lookup;
+
+// dns.lookup = common.mustCall((host, family, callback) => {
+// dns.lookup = originalLookup;
+// originalLookup(host, family, callback);
+// });
+
+// const socket = dgram.createSocket({ type: 'udp4' });
+
+// socket.bind(common.mustCall(() => {
+// socket.close();
+// }));
+// }
+
+{
+ // Verify that non-functions throw.
+ [null, true, false, 0, 1, NaN, '', 'foo', {}, Symbol()].forEach((value) => {
+ assert.throws(() => {
+ dgram.createSocket({ type: 'udp4', lookup: value });
+ }, {
+ code: 'ERR_INVALID_ARG_TYPE',
+ name: 'TypeError',
+ message: 'The "lookup" argument must be of type function.' +
+ common.invalidArgTypeHelper(value)
+ });
+ });
+}