summaryrefslogtreecommitdiff
path: root/tests/unit/network_interfaces_test.ts
blob: 160efbfe6001dc11620c85412791bbfaf876288c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.

import { assert } from "./test_util.ts";

Deno.test(
  {
    name: "Deno.networkInterfaces",
    permissions: { sys: ["networkInterfaces"] },
  },
  () => {
    const networkInterfaces = Deno.networkInterfaces();
    assert(Array.isArray(networkInterfaces));
    assert(networkInterfaces.length > 0);
    for (
      const { name, family, address, netmask, scopeid, cidr, mac }
        of networkInterfaces
    ) {
      assert(typeof name === "string");
      assert(family === "IPv4" || family === "IPv6");
      assert(typeof address === "string");
      assert(typeof netmask === "string");
      assert(
        (family === "IPv6" && typeof scopeid === "number") ||
          (family === "IPv4" && scopeid === null),
      );
      assert(typeof cidr === "string");
      assert(typeof mac === "string");
    }
  },
);