aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGravatar Ai Hoshino <ambiguous404@gmail.com> 2023-09-21 09:43:08 +0800
committerGravatar GitHub <noreply@github.com> 2023-09-20 18:43:08 -0700
commit7319142fd866d8314364d769f401a492892f7d63 (patch)
tree581466ccd682482f080ad6b8dc41eeb33e2f4626 /test
parent365fc0d39ddfaed8683eb6ee75013a0fe3adcae2 (diff)
downloadbun-7319142fd866d8314364d769f401a492892f7d63.tar.gz
bun-7319142fd866d8314364d769f401a492892f7d63.tar.zst
bun-7319142fd866d8314364d769f401a492892f7d63.zip
feat(node:dns): implement `dns.lookupService` (#5613)
* feat(node:dns): implement dns.lookupService Close: #4347 * fix flags * add `getSockaddr` * fix sockaddr size * flaky test
Diffstat (limited to 'test')
-rw-r--r--test/js/node/dns/node-dns.test.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/test/js/node/dns/node-dns.test.js b/test/js/node/dns/node-dns.test.js
index e6f28da49..d549017b2 100644
--- a/test/js/node/dns/node-dns.test.js
+++ b/test/js/node/dns/node-dns.test.js
@@ -327,4 +327,70 @@ describe("test invalid arguments", () => {
}
});
});
+
+ it("dns.lookupService", async () => {
+ expect(() => {
+ dns.lookupService("", 443, (err, hostname, service) => {});
+ }).toThrow("Expected address to be a non-empty string for 'lookupService'.");
+ expect(() => {
+ dns.lookupService("google.com", 443, (err, hostname, service) => {});
+ }).toThrow("Expected address to be a invalid address for 'lookupService'.");
+ });
+});
+
+describe("dns.lookupService", () => {
+ it.each([
+ ["1.1.1.1", 53, ["one.one.one.one", "domain"]],
+ ["2606:4700:4700::1111", 53, ["one.one.one.one", "domain"]],
+ ["2606:4700:4700::1001", 53, ["one.one.one.one", "domain"]],
+ ["1.1.1.1", 80, ["one.one.one.one", "http"]],
+ ["1.1.1.1", 443, ["one.one.one.one", "https"]],
+ ])("lookupService(%s, %d)", (address, port, expected, done) => {
+ dns.lookupService(address, port, (err, hostname, service) => {
+ try {
+ expect(err).toBeNull();
+ expect(hostname).toStrictEqual(expected[0]);
+ expect(service).toStrictEqual(expected[1]);
+ done();
+ } catch (err) {
+ done(err);
+ }
+ });
+ });
+
+ it("lookupService(255.255.255.255, 443)", done => {
+ dns.lookupService("255.255.255.255", 443, (err, hostname, service) => {
+ if (process.platform == "darwin") {
+ try {
+ expect(err).toBeNull();
+ expect(hostname).toStrictEqual("broadcasthost");
+ expect(service).toStrictEqual("https");
+ done();
+ } catch (err) {
+ done(err);
+ }
+ } else {
+ try {
+ expect(err).not.toBeNull();
+ expect(hostname).toBeUndefined();
+ expect(service).toBeUndefined();
+ done();
+ } catch (err) {
+ done(err);
+ }
+ }
+ });
+ });
+
+ it.each([
+ ["1.1.1.1", 53, ["one.one.one.one", "domain"]],
+ ["2606:4700:4700::1111", 53, ["one.one.one.one", "domain"]],
+ ["2606:4700:4700::1001", 53, ["one.one.one.one", "domain"]],
+ ["1.1.1.1", 80, ["one.one.one.one", "http"]],
+ ["1.1.1.1", 443, ["one.one.one.one", "https"]],
+ ])("promises.lookupService(%s, %d)", async (address, port, expected) => {
+ const [hostname, service] = await dns.promises.lookupService(address, port);
+ expect(hostname).toStrictEqual(expected[0]);
+ expect(service).toStrictEqual(expected[1]);
+ });
});