mirror of
https://github.com/jambonz/sbc-sip-sidecar.git
synced 2026-07-04 19:32:03 +00:00
improvement of ipv4 regex and test cases (#73)
* improvement of ipv4 regex and test cases * require utils test * change example --------- Co-authored-by: Markus Frindt <m.frindt@cognigy.com>
This commit is contained in:
@@ -4,3 +4,4 @@ require('./create-test-db');
|
||||
require('./sip-register-tests');
|
||||
require('./sip-options-tests');
|
||||
require('./docker_stop');
|
||||
require('./utils');
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
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();
|
||||
});
|
||||
Reference in New Issue
Block a user