81 lines
2.6 KiB
TypeScript
81 lines
2.6 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { isValidIPv4, } from "../lib/url/validLink";
|
|
|
|
describe("Check if a string is a valid IPv4", () => {
|
|
test("Invalid IPv4 addresses - Missing part", () => {
|
|
expect(isValidIPv4("192.168.1")).toBe(false);
|
|
expect(isValidIPv4("1")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Contains non-digit characters", () => {
|
|
expect(isValidIPv4("192.168.1.a")).toBe(false);
|
|
expect(isValidIPv4("192.168.1.1a")).toBe(false);
|
|
expect(isValidIPv4("192.168.1.1.1")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Contains empty parts", () => {
|
|
expect(isValidIPv4("192.168.1.")).toBe(false);
|
|
expect(isValidIPv4("192..168.1")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Contains negative numbers", () => {
|
|
expect(isValidIPv4("192.168.-1.1")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Contains out-of-range numbers", () => {
|
|
expect(isValidIPv4("192.168.256.1")).toBe(false);
|
|
expect(isValidIPv4("192.168.1.256")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Contains multiple dots", () => {
|
|
expect(isValidIPv4("192.168..1.1")).toBe(false);
|
|
expect(isValidIPv4("192.168.1..1")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Empty string", () => {
|
|
expect(isValidIPv4("")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Contains special characters", () => {
|
|
expect(isValidIPv4("192.168.1.1!")).toBe(false);
|
|
expect(isValidIPv4("192.168.1.1 ")).toBe(false);
|
|
expect(isValidIPv4("192.168.1.1\t")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Contains non-ASCII characters", () => {
|
|
expect(isValidIPv4("192.168.1.1©")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Contains newline character", () => {
|
|
expect(isValidIPv4("192.168.1.1\n")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Contains multiple IP addresses", () => {
|
|
expect(isValidIPv4("192.168.1.1 192.168.1.2")).toBe(false);
|
|
});
|
|
|
|
test("Invalid IPv4 addresses - Contains IPv6 address", () => {
|
|
expect(isValidIPv4("2001:0db8:85a3:0000:0000:8a2e:0370:7334")).toBe(false);
|
|
});
|
|
|
|
test("Valid IPv4 addresses - Standard IP", () => {
|
|
expect(isValidIPv4("192.168.1.1")).toBe(true);
|
|
});
|
|
|
|
test("Valid IPv4 addresses - All zeros", () => {
|
|
expect(isValidIPv4("0.0.0.0")).toBe(true);
|
|
});
|
|
|
|
test("Valid IPv4 addresses - Maximum value", () => {
|
|
expect(isValidIPv4("255.255.255.255")).toBe(true);
|
|
});
|
|
|
|
test("Valid IPv4 addresses - Leading zero but valid", () => {
|
|
expect(isValidIPv4("192.000.001.001")).toBe(true);
|
|
});
|
|
|
|
test("Valid IPv4 addresses - Single digit parts", () => {
|
|
expect(isValidIPv4("1.2.3.4")).toBe(true);
|
|
});
|
|
});
|