mirror of
https://github.com/jambonz/sbc-sip-sidecar.git
synced 2025-12-19 04:27:46 +00:00
* improvement of ipv4 regex and test cases * require utils test * change example --------- Co-authored-by: Markus Frindt <m.frindt@cognigy.com>
43 lines
2.3 KiB
JavaScript
43 lines
2.3 KiB
JavaScript
const test = require('tape');
|
|
const clearModule = require('clear-module');
|
|
const { isValidIPv4 } = require('../lib/utils');
|
|
|
|
process.on('unhandledRejection', (reason, p) => {
|
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
|
});
|
|
|
|
const testData = [
|
|
{ input: "192.168.1.1", expectedOutput: true, description: "Valid IPv4 address" },
|
|
{ input: "10.0.0.1", expectedOutput: true, description: "Valid IPv4 address" },
|
|
{ input: "255.255.255.255", expectedOutput: true, description: "Valid IPv4 address (broadcast)" },
|
|
{ input: "0.0.0.0", expectedOutput: true, description: "Valid IPv4 address (unspecified)" },
|
|
{ input: "127.0.0.1", expectedOutput: true, description: "Valid IPv4 address (localhost)" },
|
|
{ input: "1.2.3.4", expectedOutput: true, description: "Valid IPv4 address" },
|
|
{ input: "192.168.0.255", expectedOutput: true, description: "Valid IPv4 address" },
|
|
{ input: "255.0.0.0", expectedOutput: true, description: "Valid IPv4 address" },
|
|
{ input: "", expectedOutput: false, description: "Empty string" },
|
|
{ input: "192.168.1", expectedOutput: false, description: "Missing octet" },
|
|
{ input: "192.168.1.256", expectedOutput: false, description: "Octet out of range" },
|
|
{ input: "192.168.1.2.3", expectedOutput: false, description: "Too many octets" },
|
|
{ input: "192.168.a.1", expectedOutput: false, description: "Non-numeric character" },
|
|
{ input: "192..1.1", expectedOutput: false, description: "Consecutive dots" },
|
|
{ input: ".192.168.1.1", expectedOutput: false, description: "Leading dot" },
|
|
{ input: "192.168.1.1.", expectedOutput: false, description: "Trailing dot" },
|
|
{ input: " 192.168.1.1 ", expectedOutput: false, description: "Leading/trailing spaces" },
|
|
{ input: "192,168,1,1", expectedOutput: false, description: "Commas instead of dots" },
|
|
{ input: "2001:0db8:85a3:0000:0000:8a2e:0370:7334", expectedOutput: false, description: "IPv6 address" },
|
|
{ input: "localhost", expectedOutput: false, description: "Hostname, not IP" },
|
|
{ input: "10.0.0.1/24", expectedOutput: false, description: "IPv4 with subnet mask" },
|
|
{ input: "991240413047.primary.companyflex.de:0", expectedOutput: false, description: "Hostname with port, not IP" },
|
|
];
|
|
|
|
test('register tests', (t) => {
|
|
clearModule.all();
|
|
|
|
for (const data of testData) {
|
|
t.equal(isValidIPv4(data.input), data.expectedOutput, data.description);
|
|
}
|
|
|
|
t.end();
|
|
});
|