| | import { assertEquals, assertThrows } from "./deps.ts"; |
| | import { generateRandomIPv6 } from "../lib/helpers/ipv6Rotation.ts"; |
| |
|
| | Deno.test("generateRandomIPv6 - generates valid IPv6 addresses", () => { |
| | const ipv6Block = "2001:db8::/32"; |
| |
|
| | |
| | const addresses = new Set<string>(); |
| | for (let i = 0; i < 100; i++) { |
| | const addr = generateRandomIPv6(ipv6Block); |
| | addresses.add(addr); |
| |
|
| | |
| | |
| | |
| | const parts = addr.split(":"); |
| | assertEquals(parts[0], "2001"); |
| | assertEquals(parts[1], "db8"); |
| | } |
| |
|
| | |
| | |
| | assertEquals(addresses.size > 50, true); |
| | }); |
| |
|
| | Deno.test("generateRandomIPv6 - handles different block sizes", () => { |
| | |
| | const addr32 = generateRandomIPv6("2001:db8::/32"); |
| | const parts32 = addr32.split(":"); |
| | assertEquals(parts32[0], "2001"); |
| | assertEquals(parts32[1], "db8"); |
| |
|
| | |
| | const addr48 = generateRandomIPv6("2001:db8:1234::/48"); |
| | const parts48 = addr48.split(":"); |
| | assertEquals(parts48[0], "2001"); |
| | assertEquals(parts48[1], "db8"); |
| | assertEquals(parts48[2], "1234"); |
| |
|
| | |
| | const addr64 = generateRandomIPv6("2001:db8::/64"); |
| | const parts64 = addr64.split(":"); |
| | assertEquals(parts64[0], "2001"); |
| | assertEquals(parts64[1], "db8"); |
| | }); |
| |
|
| | Deno.test("generateRandomIPv6 - throws error for invalid block size", () => { |
| | assertThrows( |
| | () => generateRandomIPv6("2001:db8::/129"), |
| | Error, |
| | "Invalid IPv6 block size", |
| | ); |
| |
|
| | assertThrows( |
| | () => generateRandomIPv6("2001:db8::/0"), |
| | Error, |
| | "Invalid IPv6 block size", |
| | ); |
| | }); |
| |
|
| | Deno.test("generateRandomIPv6 - handles compressed IPv6 notation", () => { |
| | const ipv6Block = "2001:db8::/32"; |
| | const addr = generateRandomIPv6(ipv6Block); |
| |
|
| | |
| | const parts = addr.split(":"); |
| | assertEquals(parts.length >= 3, true); |
| | assertEquals(parts[0], "2001"); |
| | assertEquals(parts[1], "db8"); |
| | }); |
| |
|