diff options
Diffstat (limited to 'test/js/node/dns/node-dns.test.js')
-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(); +}); |