From 6d0660613548869feb97a299f3aee7b718025802 Mon Sep 17 00:00:00 2001 From: Ciro Spaciari Date: Thu, 26 Jan 2023 23:36:53 -0300 Subject: Implement all pending resolve methods in DNS (#1903) * initial steps to create generic resolve * add soa * add naptr * add naptr * add mx and fix naptr * add resolve caa * fix Caa test * fix toJS from caa * add resolveNs * add resolvePtr * fix resolvePtr test * add resolveCname * add resolve rrtype options (still missing ANY) * fix Naptr * fix drainPendingCares --- test/bun.js/node-dns.test.js | 144 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 122 insertions(+), 22 deletions(-) (limited to 'test/bun.js/node-dns.test.js') diff --git a/test/bun.js/node-dns.test.js b/test/bun.js/node-dns.test.js index 287645bd9..b3ee09d48 100644 --- a/test/bun.js/node-dns.test.js +++ b/test/bun.js/node-dns.test.js @@ -9,30 +9,18 @@ test("it exists", () => { expect(dns.resolve).toBeDefined(); expect(dns.resolve4).toBeDefined(); expect(dns.resolve6).toBeDefined(); + expect(dns.resolveSrv).toBeDefined(); + expect(dns.resolveTxt).toBeDefined(); + expect(dns.resolveSoa).toBeDefined(); + expect(dns.resolveNaptr).toBeDefined(); + expect(dns.resolveMx).toBeDefined(); + expect(dns.resolveCaa).toBeDefined(); + expect(dns.resolveNs).toBeDefined(); + expect(dns.resolvePtr).toBeDefined(); + expect(dns.resolveCname).toBeDefined(); }); -test("dns.lookup (localhost)", (done) => { - dns.lookup("localhost", (err, address, family) => { - expect(err).toBeNull(); - if (family === 6) { - expect(address).toBe("::1"); - } else { - expect(address).toBe("127.0.0.1"); - } - - done(err); - }); -}); - -test("dns.lookup (example.com)", (done) => { - dns.lookup("example.com", (err, address, family) => { - expect(err).toBeNull(); - expect(typeof address).toBe("string"); - done(err); - }); -}); - -//TODO: use a bun.sh SRV for testing +// //TODO: use a bun.sh SRV for testing test("dns.resolveSrv (_test._tcp.test.socketify.dev)", (done) => { dns.resolveSrv("_test._tcp.test.socketify.dev", (err, results) => { expect(err).toBeNull(); @@ -51,4 +39,116 @@ test("dns.resolveSrv (_test._tcp.invalid.localhost)", (done) => { expect(results).toBeUndefined(true); done(); }); +}); + +test("dns.resolveTxt (txt.socketify.dev)", (done) => { + dns.resolveTxt("txt.socketify.dev", (err, results) => { + expect(err).toBeNull(); + expect(results instanceof Array).toBe(true); + expect(results[0][0]).toBe("bun_test;test"); + done(err); + }); +}); + + +test("dns.resolveSoa (bun.sh)", (done) => { + dns.resolveSoa("bun.sh", (err, result) => { + expect(err).toBeNull(); + + expect(result.serial).toBe(2295878541); + expect(result.refresh).toBe(10000); + expect(result.retry).toBe(2400); + expect(result.expire).toBe(604800); + expect(result.minttl).toBe(3600); + expect(result.nsname).toBe("hans.ns.cloudflare.com"); + expect(result.hostmaster).toBe("dns.cloudflare.com"); + + done(err); + }); +}); + +test("dns.resolveNaptr (naptr.socketify.dev)", (done) => { + dns.resolveNaptr("naptr.socketify.dev", (err, results) => { + expect(err).toBeNull(); + expect(results instanceof Array).toBe(true); + expect(results[0].flags).toBe('S'); + expect(results[0].service).toBe('test'); + expect(results[0].regexp).toBe(''); + expect(results[0].replacement).toBe(''); + expect(results[0].order).toBe(1); + expect(results[0].preference).toBe(12); + done(err); + }); +}); + +test("dns.resolveCaa (caa.socketify.dev)", (done) => { + dns.resolveCaa("caa.socketify.dev", (err, results) => { + expect(err).toBeNull(); + expect(results instanceof Array).toBe(true); + expect(results[0].critical).toBe(0); + expect(results[0].issue).toBe('bun.sh'); + done(err); + }); +}); + + +test("dns.resolveMx (bun.sh)", (done) => { + dns.resolveMx("bun.sh", (err, results) => { + expect(err).toBeNull(); + expect(results instanceof Array).toBe(true); + expect(results[0].priority).toBe(10); + expect(results[0].exchange).toBe('eforward1.registrar-servers.com'); + done(err); + }); +}); + + + +test("dns.resolveNs (bun.sh) ", (done) => { + dns.resolveNs("bun.sh", (err, results) => { + expect(err).toBeNull(); + expect(results instanceof Array).toBe(true); + expect(results[0]).toBe('hans.ns.cloudflare.com'); + done(err); + }); +}); + +test("dns.resolvePtr (ptr.socketify.dev)", (done) => { + dns.resolvePtr("ptr.socketify.dev", (err, results) => { + expect(err).toBeNull(); + expect(results instanceof Array).toBe(true); + expect(results[0]).toBe('bun.sh'); + done(err); + }); +}); + +test("dns.resolveCname (cname.socketify.dev)", (done) => { + dns.resolveCname("cname.socketify.dev", (err, results) => { + expect(err).toBeNull(); + expect(results instanceof Array).toBe(true); + expect(results[0]).toBe('bun.sh'); + done(err); + }); +}); + + +test("dns.lookup (example.com)", (done) => { + dns.lookup("example.com", (err, address, family) => { + expect(err).toBeNull(); + expect(typeof address).toBe("string"); + done(err); + }); +}); + +test("dns.lookup (localhost)", (done) => { + dns.lookup("localhost", (err, address, family) => { + expect(err).toBeNull(); + if (family === 6) { + expect(address).toBe("::1"); + } else { + expect(address).toBe("127.0.0.1"); + } + + done(err); + }); }); \ No newline at end of file -- cgit v1.2.3