init
This commit is contained in:
266
tests/validate-tests.nix
Normal file
266
tests/validate-tests.nix
Normal file
@@ -0,0 +1,266 @@
|
||||
{ lib, validate }:
|
||||
|
||||
let
|
||||
inherit (lib) runTests;
|
||||
|
||||
in runTests {
|
||||
testIsValidIpBasic = {
|
||||
expr = validate.isValidIp "192.168.1.1";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsValidIpZeros = {
|
||||
expr = validate.isValidIp "0.0.0.0";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsValidIpMax = {
|
||||
expr = validate.isValidIp "255.255.255.255";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsValidIpInvalidOctet = {
|
||||
expr = validate.isValidIp "256.1.1.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidIpTooFewOctets = {
|
||||
expr = validate.isValidIp "192.168.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidIpTooManyOctets = {
|
||||
expr = validate.isValidIp "192.168.1.1.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidIpEmpty = {
|
||||
expr = validate.isValidIp "";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidIpLetters = {
|
||||
expr = validate.isValidIp "abc.def.ghi.jkl";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidIpNegative = {
|
||||
expr = validate.isValidIp "-1.0.0.0";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidIpNotString = {
|
||||
expr = validate.isValidIp 12345;
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidCidrBasic = {
|
||||
expr = validate.isValidCidr "192.168.1.0/24";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsValidCidrSlash0 = {
|
||||
expr = validate.isValidCidr "0.0.0.0/0";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsValidCidrSlash32 = {
|
||||
expr = validate.isValidCidr "192.168.1.1/32";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsValidCidrInvalidPrefix = {
|
||||
expr = validate.isValidCidr "192.168.1.0/33";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidCidrNoPrefix = {
|
||||
expr = validate.isValidCidr "192.168.1.0";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidCidrInvalidIp = {
|
||||
expr = validate.isValidCidr "256.168.1.0/24";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidCidrEmpty = {
|
||||
expr = validate.isValidCidr "";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsValidCidrNotString = {
|
||||
expr = validate.isValidCidr 12345;
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testTryParseIpValid = {
|
||||
expr = validate.tryParseIp "192.168.1.1";
|
||||
expected = 3232235777;
|
||||
};
|
||||
|
||||
testTryParseIpInvalid = {
|
||||
expr = validate.tryParseIp "invalid";
|
||||
expected = null;
|
||||
};
|
||||
|
||||
testTryParseCidrValid = {
|
||||
expr = validate.tryParseCidr "192.168.1.0/24";
|
||||
expected = { address = 3232235776; prefixLen = 24; };
|
||||
};
|
||||
|
||||
testTryParseCidrInvalid = {
|
||||
expr = validate.tryParseCidr "invalid";
|
||||
expected = null;
|
||||
};
|
||||
|
||||
testIsPrivate10 = {
|
||||
expr = validate.isPrivate "10.1.2.3";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsPrivate172 = {
|
||||
expr = validate.isPrivate "172.16.5.10";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsPrivate172Edge = {
|
||||
expr = validate.isPrivate "172.31.255.255";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsPrivate172Outside = {
|
||||
expr = validate.isPrivate "172.32.0.0";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsPrivate192 = {
|
||||
expr = validate.isPrivate "192.168.100.50";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsPrivatePublic = {
|
||||
expr = validate.isPrivate "8.8.8.8";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsLoopback127 = {
|
||||
expr = validate.isLoopback "127.0.0.1";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsLoopback127Any = {
|
||||
expr = validate.isLoopback "127.255.255.254";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsLoopbackFalse = {
|
||||
expr = validate.isLoopback "128.0.0.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsLinkLocalTrue = {
|
||||
expr = validate.isLinkLocal "169.254.1.1";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsLinkLocalFalse = {
|
||||
expr = validate.isLinkLocal "169.255.1.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsMulticastTrue = {
|
||||
expr = validate.isMulticast "224.0.0.1";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsMulticastMax = {
|
||||
expr = validate.isMulticast "239.255.255.255";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsMulticastFalse = {
|
||||
expr = validate.isMulticast "223.255.255.255";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsBroadcastTrue = {
|
||||
expr = validate.isBroadcast "255.255.255.255";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsBroadcastFalse = {
|
||||
expr = validate.isBroadcast "255.255.255.254";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsUnspecifiedTrue = {
|
||||
expr = validate.isUnspecified "0.0.0.0";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsUnspecifiedFalse = {
|
||||
expr = validate.isUnspecified "0.0.0.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsDocumentation192 = {
|
||||
expr = validate.isDocumentation "192.0.2.1";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsDocumentation198 = {
|
||||
expr = validate.isDocumentation "198.51.100.50";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsDocumentation203 = {
|
||||
expr = validate.isDocumentation "203.0.113.100";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsDocumentationFalse = {
|
||||
expr = validate.isDocumentation "192.0.3.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsGlobalUnicastPublic = {
|
||||
expr = validate.isGlobalUnicast "8.8.8.8";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testIsGlobalUnicastPrivate = {
|
||||
expr = validate.isGlobalUnicast "192.168.1.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testIsGlobalUnicastLoopback = {
|
||||
expr = validate.isGlobalUnicast "127.0.0.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testClassifyLoopback = {
|
||||
expr = validate.classify "127.0.0.1";
|
||||
expected = "loopback";
|
||||
};
|
||||
|
||||
testClassifyPrivate = {
|
||||
expr = validate.classify "192.168.1.1";
|
||||
expected = "private";
|
||||
};
|
||||
|
||||
testClassifyLinkLocal = {
|
||||
expr = validate.classify "169.254.1.1";
|
||||
expected = "link-local";
|
||||
};
|
||||
|
||||
testClassifyMulticast = {
|
||||
expr = validate.classify "224.0.0.1";
|
||||
expected = "multicast";
|
||||
};
|
||||
|
||||
testClassifyGlobal = {
|
||||
expr = validate.classify "8.8.8.8";
|
||||
expected = "global-unicast";
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user