34 lines
947 B
TypeScript
34 lines
947 B
TypeScript
import os from "node:os";
|
|
|
|
import { describe, expect, it, vi } from "vitest";
|
|
|
|
import { listTailnetAddresses } from "./tailnet.js";
|
|
|
|
describe("tailnet address detection", () => {
|
|
it("detects tailscale IPv4 and IPv6 addresses", () => {
|
|
vi.spyOn(os, "networkInterfaces").mockReturnValue({
|
|
lo0: [
|
|
{ address: "127.0.0.1", family: "IPv4", internal: true, netmask: "" },
|
|
] as unknown as os.NetworkInterfaceInfo[],
|
|
utun9: [
|
|
{
|
|
address: "100.123.224.76",
|
|
family: "IPv4",
|
|
internal: false,
|
|
netmask: "",
|
|
},
|
|
{
|
|
address: "fd7a:115c:a1e0::8801:e04c",
|
|
family: "IPv6",
|
|
internal: false,
|
|
netmask: "",
|
|
},
|
|
] as unknown as os.NetworkInterfaceInfo[],
|
|
});
|
|
|
|
const out = listTailnetAddresses();
|
|
expect(out.ipv4).toEqual(["100.123.224.76"]);
|
|
expect(out.ipv6).toEqual(["fd7a:115c:a1e0::8801:e04c"]);
|
|
});
|
|
});
|