diff options
author | 2023-08-06 21:16:54 +0800 | |
---|---|---|
committer | 2023-08-06 06:16:54 -0700 | |
commit | ecdf2ffa6c615d8a431c2919c0b9bdc4cbe2c4f0 (patch) | |
tree | a9bb787b1efc382ed37e8fe99cdda8cdb0f7fe92 /test/js/node | |
parent | cd0774cd89f44ae3880ae5d3840787012d9df603 (diff) | |
download | bun-ecdf2ffa6c615d8a431c2919c0b9bdc4cbe2c4f0.tar.gz bun-ecdf2ffa6c615d8a431c2919c0b9bdc4cbe2c4f0.tar.zst bun-ecdf2ffa6c615d8a431c2919c0b9bdc4cbe2c4f0.zip |
feat: impl `dns.getServers` (#3982)
* feat: impl `dns.getServers`
Close: #3981
* check return value of `ares_inet_ntop`
Diffstat (limited to 'test/js/node')
-rw-r--r-- | test/js/node/dns/node-dns.test.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/js/node/dns/node-dns.test.js b/test/js/node/dns/node-dns.test.js index 5de840146..f905a2885 100644 --- a/test/js/node/dns/node-dns.test.js +++ b/test/js/node/dns/node-dns.test.js @@ -1,6 +1,8 @@ import { expect, test } from "bun:test"; import * as dns from "node:dns"; import * as dns_promises from "node:dns/promises"; +import * as fs from "node:fs"; +import * as os from "node:os"; // TODO: test("it exists", () => { @@ -190,3 +192,34 @@ test("dns.lookup (localhost)", done => { done(err); }); }); + +test("dns.getServers", done => { + function parseResolvConf() { + let servers = []; + try { + const content = fs.readFileSync("/etc/resolv.conf", "utf-8"); + const lines = content.split(os.EOL); + + for (const line of lines) { + const parts = line.trim().split(/\s+/); + if (parts.length >= 2 && parts[0] === "nameserver") { + servers.push(parts[1]); + } + } + } catch (err) { + done(err); + } + return servers; + } + + const expectServers = parseResolvConf(); + const actualServers = dns.getServers(); + try { + for (const server of expectServers) { + expect(actualServers).toContain(server); + } + } catch (err) { + return done(err); + } + done(); +}); |