ip-num icon indicating copy to clipboard operation
ip-num copied to clipboard

Bug in collapseIPv6Number()

Open ipapi-is opened this issue 1 year ago • 1 comments

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.

ipapi-is avatar Sep 15 '24 14:09 ipapi-is

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.

dadepo avatar Sep 16 '24 05:09 dadepo