ip-num
ip-num copied to clipboard
Bug in collapseIPv6Number()
Hello,
You have a bug in collapseIPv6Number() in v1.5.1
Reproduction:
const { collapseIPv6Number } = require('ip-num/IPv6Utils');
const inputs = [
{
input: '2001:550:0:1000:0:0:9a1a:2187',
expected: '2001:550:0:1000::9a1a:2187'
},
{
input: '2001:4457:0:371a:0:0:0:0',
expected: '2001:4457:0:371a::'
},
{
input: '2001:550:0:1000:0:0:9a18:3c58',
expected: '2001:550:0:1000::9a18:3c58'
},
];
for (const input of inputs) {
const collapsed = collapseIPv6Number(input.input);
const failed = collapsed !== input.expected;
if (failed) {
console.log(`[FAILED] Collapsed: ${collapsed} != Expected: ${input.expected}`);
} else {
console.log(`[PASSED] Collapsed: ${collapsed} == Expected: ${input.expected}`);
}
}
which yields:
node collapse_ipv6_test.js
[FAILED] Collapsed: 2001:550::1000::9a1a:2187 != Expected: 2001:550:0:1000::9a1a:2187
[PASSED] Collapsed: 2001:4457:0:371a:: == Expected: 2001:4457:0:371a::
[FAILED] Collapsed: 2001:550::1000::9a18:3c58 != Expected: 2001:550:0:1000::9a18:3c58
Please fix this. Thank you a lot.
Currently I do not have spare time to work on this library. So if you can send a PR with the fix that would be appreciated.